<SEC-DOCUMENT>0001654954-23-003029.txt : 20230316
<SEC-HEADER>0001654954-23-003029.hdr.sgml : 20230316
<ACCEPTANCE-DATETIME>20230316160400
ACCESSION NUMBER:		0001654954-23-003029
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		98
CONFORMED PERIOD OF REPORT:	20221231
FILED AS OF DATE:		20230316
DATE AS OF CHANGE:		20230316

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TOMI Environmental Solutions, Inc.
		CENTRAL INDEX KEY:			0000314227
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL ORGANIC CHEMICALS [2860]
		IRS NUMBER:				591947988
		STATE OF INCORPORATION:			FL
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-39574
		FILM NUMBER:		23738733

	BUSINESS ADDRESS:	
		STREET 1:		8430 SPIRES WAY
		CITY:			FREDERICK
		STATE:			MD
		ZIP:			21701
		BUSINESS PHONE:		8005251698

	MAIL ADDRESS:	
		STREET 1:		8430 SPIRES WAY
		CITY:			FREDERICK
		STATE:			MD
		ZIP:			21701

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	Ozone Man, Inc.
		DATE OF NAME CHANGE:	20071130

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	RPS GROUP INC
		DATE OF NAME CHANGE:	19940818

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	DAUPHIN INC
		DATE OF NAME CHANGE:	19940818
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>tomz_10k.htm
<DESCRIPTION>FORM 10-K
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?><html xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:currency="http://xbrl.sec.gov/currency/2022" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:us-roles="http://fasb.org/us-roles/2022" xmlns:country="http://xbrl.sec.gov/country/2022" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2022" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:srt="http://fasb.org/srt/2022" xmlns:us-gaap="http://fasb.org/us-gaap/2022" xmlns:tomz="http://tomz.com/20221231"><head><title>tomz_10k.htm</title><!--Document Created by XBRLMaster--><meta http-equiv="Content-Type" content="text/html" /></head><body style="text-align:justify;font:10pt times new roman"><div style='display:none;text-align:justify;font:10pt times new roman;' id='XBRLDIV'><ix:header><ix:hidden><ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="From2022-01-01to2022-12-31">0000314227</ix:nonNumeric><ix:nonNumeric name="dei:AmendmentFlag" contextRef="From2022-01-01to2022-12-31" format="ixt:booleanfalse">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" contextRef="From2022-01-01to2022-12-31">--12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" contextRef="From2022-01-01to2022-12-31">FY</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" contextRef="From2022-01-01to2022-12-31">2022</ix:nonNumeric><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2021-12-31" unitRef="USDPShares" decimals="INF">0.01</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2021-12-31" unitRef="Shares" decimals="0">250000000</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2021-12-31" unitRef="Shares" decimals="0">19680955</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2022-12-31" unitRef="Shares" decimals="0">19763955</ix:nonFraction><ix:nonFraction name="tomz:PreferredStockParOrStatedValue" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="USD" decimals="0">1000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">1000000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">4000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">63750</ix:nonFraction><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivable" contextRef="AsOf2021-12-31" unitRef="USD" decimals="0">1678000</ix:nonFraction><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" contextRef="AsOf2021-12-31" unitRef="USD" decimals="0">68000</ix:nonFraction><ix:nonFraction name="tomz:AmortizationOfTenantImprovementAllowance" contextRef="From2021-01-01to2021-12-31" unitRef="USD" decimals="0">39194</ix:nonFraction><ix:nonFraction name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="tomz:WeightedAverageExercisePriceExercised" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" unitRef="USDPShares" decimals="INF">0</ix:nonFraction><ix:nonFraction name="tomz:WeightedAverageExercisePriceExercised" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" unitRef="USDPShares" decimals="INF">0</ix:nonFraction><ix:nonFraction name="tomz:WeightedAverageExercisePriceExpired" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" unitRef="USDPShares" decimals="INF">0</ix:nonFraction><ix:nonFraction name="tomz:WeightedAverageExercisePriceExpired" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" unitRef="USDPShares" decimals="INF">0</ix:nonFraction><ix:nonFraction name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" unitRef="USDPShares" decimals="INF">0</ix:nonFraction><ix:nonFraction name="tomz:ExercisePriceOfWarrant" contextRef="AsOf2021-09-30_tomz_PrivatePlacementsMember" unitRef="USDPShares" decimals="INF">1.68</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockValue" contextRef="AsOf2021-12-31_tomz_JanuaryTwentyTwentyOneMember" unitRef="USD" decimals="0">228000</ix:nonFraction><ix:nonNumeric name="tomz:TermOfAgreement" contextRef="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithElissaJShaneMember">three years</ix:nonNumeric><ix:nonFraction name="us-gaap:SalariesAndWages" contextRef="From2022-01-01to2022-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember" unitRef="USD" decimals="0">270000</ix:nonFraction><ix:nonFraction name="us-gaap:ClassOfWarrantOrRightOutstanding" contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember" unitRef="Shares" decimals="0">93750</ix:nonFraction><ix:nonFraction name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember" unitRef="Shares" decimals="0">93750</ix:nonFraction><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2021-01-01to2021-12-31" unitRef="Pure" decimals="INF">0.1</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type='simple' xlink:href='tomz-20221231.xsd'></link:schemaRef></ix:references><ix:resources><xbrli:context id="From2022-01-01to2022-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2023-01-01to2023-01-31_srt_BoardOfDirectorsChairmanMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:BoardOfDirectorsChairmanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefOperatingOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefOperatingOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_ThreeCustomerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:ThreeCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-03-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-03-31_tomz_TwoCustomerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-03-31_tomz_OneCustomerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:OneCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_BoardOfMembersMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:BoardOfMembersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:BoardOfMembersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2017-12-01to2017-12-31_tomz_CommitteeChairpersonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:CommitteeChairpersonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-12-01</xbrli:startDate><xbrli:endDate>2017-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2017-12-01to2017-12-31_tomz_BoardOfMembersMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:BoardOfMembersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-12-01</xbrli:startDate><xbrli:endDate>2017-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-10-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithElissaJShaneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-01</xbrli:startDate><xbrli:endDate>2020-06-22</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithHaldenSShaneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-01</xbrli:startDate><xbrli:endDate>2020-06-22</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_tomz_JanuaryTwentyTwentyOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwentyOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_JanuaryTwentyTwentyTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwentyTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_JanuaryTwentyTwentyTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwentyTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-02-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-02-11</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-02-01to2021-02-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-02-11</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-09-30_tomz_PlacementAgentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:PlacementAgentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-09-30_tomz_PrivatePlacementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:PrivatePlacementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-11-01to2022-11-30_srt_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-11-01</xbrli:startDate><xbrli:endDate>2022-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-11-01to2022-11-30_srt_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-11-01</xbrli:startDate><xbrli:endDate>2022-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-11-01to2022-11-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-11-01</xbrli:startDate><xbrli:endDate>2022-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-09-01to2021-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-09-01</xbrli:startDate><xbrli:endDate>2021-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsTwelveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwelveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsElevenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsTenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsEightMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsSevenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsTwelveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwelveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsElevenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsTenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsEightMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsSevenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeEightMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeEightMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeSevenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeNineMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeNineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_RangeOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeNineMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeNineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeSevenMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeEightMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeEightMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_RangeOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_StockWarrantMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_StockWarrantMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-05-01to2021-05-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2018-04-01to2018-04-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2018-04-01</xbrli:startDate><xbrli:endDate>2018-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2018-04-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-07-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-09-30_tomz_EquityIncentivePlanOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_EquityIncentivePlanOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_us-gaap_SoftwareDevelopmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_us-gaap_SoftwareDevelopmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_SteraMistPRoductMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_UnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:UnitedStatesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_GeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tomz:GeographicRegionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_GeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tomz:GeographicRegionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_UnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:UnitedStatesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_SteraMistPRoductMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_tomz_ServiceAndTrainingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-03-07"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-03-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2022-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="USDPShares"><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="Pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit></ix:resources></ix:header></div><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 5px solid;"></td></tr><tr><td style="BORDER-BOTTOM: 2px solid;"></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>UNITED STATES SECURITIES AND EXCHANGE COMMISSION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Washington, D.C. 20549</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><span style="font-size:18pt">FORM <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:DocumentType"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:DocumentType">10-K</ix:nonNumeric></ix:nonNumeric>&#160;&#160;</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric> </strong></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</strong></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">For the fiscal year ended <strong><span style="text-decoration:underline"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:DocumentPeriodEndDate" format="ixt:datemonthdayyearen">December 31, 2022</ix:nonNumeric></span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">or</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric> </strong></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</strong></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">For the transition period from &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; to</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">Commission File Number <strong><span style="text-decoration:underline"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityFileNumber">000-09908</ix:nonNumeric></span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:left;margin-left:auto;margin-right:auto;width:60%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><span style="font-size:18pt"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityRegistrantName">TOMI ENVIRONMENTAL SOLUTIONS, INC.</ix:nonNumeric></strong></span></p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Exact name of registrant as specified in its charter)</strong></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:45%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityIncorporationStateCountryCode">FL</ix:nonNumeric>ORIDA</strong></p></td><td style="width:10%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:45%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityTaxIdentificationNumber">59-1947988</ix:nonNumeric></strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(State or other jurisdiction of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>incorporation or organization)</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(I.R.S. Employer</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Identification No.)</strong></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityAddressAddressLine1">8430 Spires Way</ix:nonNumeric></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityAddressCityOrTown">Frederick</ix:nonNumeric>, <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen">Maryland</ix:nonNumeric></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityAddressPostalZipCode">21701</ix:nonNumeric></strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Address of principal executive offices)</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Zip Code)</strong></p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Registrant&#8217;s telephone number, including area code: (<ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:CityAreaCode">800</ix:nonNumeric>) <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:LocalPhoneNumber">525-1698</ix:nonNumeric></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Securities registered under Section 12(b) of the Exchange Act:&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;border-right:#000000 1px solid;border-bottom:#000000 1px solid;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Title of each class</strong></p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Trading</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Sy</strong><strong>m</strong><strong>bol(</strong><strong>s</strong><strong>)</strong></p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:40%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name of each exchange on which registered</strong></p></td></tr><tr style="height:15px"><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:Security12bTitle">Common Stock, par value $0.001 per share</ix:nonNumeric></p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:TradingSymbol">TOMZ</ix:nonNumeric></p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">The <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen">Nasdaq</ix:nonNumeric> Capital Market</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Securities registered under Section 12(g) of the Exchange Act: None</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityWellKnownSeasonedIssuer">Yes</ix:nonNumeric> &#9746; No &#9744;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act. Yes &#9744; <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityVoluntaryFilers">No</ix:nonNumeric> &#9746;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">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. <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityCurrentReportingStatus">Yes</ix:nonNumeric> &#9746; No &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">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 and post such files). <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityInteractiveDataCurrent">Yes</ix:nonNumeric> &#9746; No &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or 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:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font-size:10pt;text-align:left;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:30%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Large Accelerated Filer</p></td><td style="width:20%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9744;</p></td><td style="width:30%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accelerated Filer</p></td><td style="width:20%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9744;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen">Non-accelerated Filer</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9746;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Smaller Reporting Company</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Emerging Growth Company</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">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. &#9744;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:IcfrAuditorAttestationFlag" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. &#9744;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167; 240.10D-1(b). &#9744;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act). Yes <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:EntityShellCompany" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric> No &#9746;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of June 30, 2022, the last business day of the registrant&#8217;s most recently completed second fiscal quarter, the aggregate market value of the common stock held by non-affiliates of the registrant was approximately $<ix:nonFraction contextRef="AsOf2022-06-30" name="dei:EntityPublicFloat" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,235,000</ix:nonFraction>, based upon the closing price of the registrant&#8217;s common stock as reported on the Nasdaq Capital Market on such date.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">As of March 7, 2023, the registrant had <ix:nonFraction contextRef="AsOf2023-03-07" name="dei:EntityCommonStockSharesOutstanding" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">19,823,955</ix:nonFraction> shares of common stock outstanding.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>DOCUMENTS INCORPORATED BY REFERENCE</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">None.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 2px solid;"></td></tr><tr><td style="BORDER-BOTTOM: 5px solid;"></td></tr></tbody></table><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="TEXT-INDENT: 0px;"></td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td>&#160;</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>ANNUAL REPORT ON FORM 10-K</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>FOR THE FISCAL YEAR ENDED DECEMBER 31, 2022</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><span class="atag" style="display: inline" id="TOC">TABLE OF CONTENTS</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:8%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Item</strong></p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:9%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Page</strong>&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="3"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><a href="#p1">PART I</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i1">1.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i1">Business</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i1a">1A.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i1a">Risk Factors</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">14</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i1b">1B.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i1b">Unresolved Staff Comments</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">25</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i2">2.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i2">Properties</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">25</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i3">3.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i3">Legal Proceedings</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">25</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i4">4.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i4">Mine Safety Disclosures</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">25</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="3"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><a href="#p2">PART II</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i5">5.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i5">Market for Registrant&#8217;s Common Equity, Related Shareholder Matters and Issuer Purchases of Equity Securities</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">26</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i6">6.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i6">Selected Financial Data</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">26</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i7">7.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i7">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">26</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i8">8.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i8">Financial Statements and Supplementary Data</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">41</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i9">9.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i9">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">41</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i9a">9A.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i9a">Controls and Procedures</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">41</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i9b">9B.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i9b">Other Information</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">43</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="3"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><a href="#p3">PART III</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i10">10.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i10">Directors, Executive Officers and Corporate Governance</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">44</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i11">11.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i11">Executive Compensation</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">46</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i12">12.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i12">Security Ownership of Certain Beneficial Owners and Management and Related Shareholder Matters</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">51</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i13">13.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i13">Certain Relationships and Related Transactions, and Director Independence</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">53</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i14">14.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i14">Principal Accounting Fees and Services</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">53</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="3"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><a href="#p4">PART IV</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="#i15">15.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#i15">Exhibits, Financial Statement Schedules</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">54</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="3"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><a href="#sig">Signatures</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">56</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><a href="#exhibit">Exhibit Index</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">55</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><a href="#fine">Financial Statements</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">2</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>FORWARD-LOOKING STATEMENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">This Annual Report on Form 10-K contains certain forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;), and Section 21E of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;), and we intend that such forward-looking statements be subject to the safe harbors created thereby. For this purpose, any statements contained in this Annual Report on Form 10-K, except for historical information, may be deemed to be forward-looking statements. You can generally identify forward-looking statements as statements containing the words &#8220;will,&#8221; &#8220;would,&#8221; &#8220;believe,&#8221; &#8220;expect,&#8221; &#8220;estimate,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;assume,&#8221; &#8220;can,&#8221; &#8220;could,&#8221; &#8220;plan,&#8221; &#8220;predict,&#8221; &#8220;should&#8221; or the negative or other variations thereof or comparable terminology are intended to identify forward-looking statements. In addition, any statements that refer to projections of our future financial performance, trends in our businesses, or other characterizations of future events or circumstances are forward-looking statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The forward-looking statements included herein are based on current expectations of our management based on available information and involve a number of risks and uncertainties, all of which are difficult or impossible to predict accurately and many of which are beyond our control. As such, our actual results could differ materially and adversely from those expressed in any forward-looking statements as a result of various factors. Important factors that could affect our performance and cause results to differ materially from management&#8217;s expectations are described in the section entitled &#8220;Risk Factors,&#8221; Item 1A of this Annual Report on Form 10-K. These factors include: our history of losses that may prevent us from achieving profitability in the future; our lack of long-term customer contracts and our inability to rely on our sales history or backlog as an indicator of our future sales; that we are subject to a variety or risks associated with doing business internationally; our success in business depends on our ability to adequately protect our intellectual property; and that our stock price is volatile and there is a limited market for our shares.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Readers should carefully review &#8220;Risk Factors&#8221;, as well as the additional risks described in other documents we file from time to time with the Securities and Exchange Commission. In light of the significant risks and uncertainties inherent in the forward-looking information included herein, the inclusion of such information should not be regarded as a representation by us or any other person that such results will be achieved, and readers are cautioned not to place undue reliance on such forward-looking information. Except as required by law, we undertake no obligation to revise the forward-looking statements contained herein to reflect events or circumstances after the date hereof or to reflect the occurrence of unanticipated events.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">3</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="p1">PART I</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i1">Item 1. BUSINESS</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Overview</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">TOMI Environmental Solutions, Inc. (&#8220;TOMI&#8221;, &#8220;we&#8221; and &#8220;our&#8221;) is a global bacteria decontamination and infectious disease control company, providing environmental solutions for indoor air and surface decontamination through the manufacturing, sales, service and licensing of our SteraMist&#174; brand of products, including SteraMist&#174; BIT&#8482;, a low percentage (7.8%) hydrogen peroxide-based fog or mist that uses Binary Ionization Technology (&#8220;BIT&#8482;&#8221;). Our solution and process are environmentally friendly as the only by-product from our decontamination process is oxygen and humidity. Our solution is organic and is listed in Canada as a sustainably a green product with no carbon footprint. Most of our competitors in the disinfection space leave significant by-products and are corrosive. SteraMist is not corrosive, and it does not damage equipment or facilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Our SteraMist&#174; is a patented technology that produces ionized Hydrogen Peroxide (&#8220;iHP&#8482;&#8221;) using cold plasma science created under a grant by the United States Defense Advanced Research Projects Agency (&#8220;DARPA&#8221;). Our Environmental Protection Agency (&#8220;EPA&#8221;) registered BIT&#8482; Solution is composed of a low concentration of hydrogen peroxide converted to iHP&#8482; after passing the trade secret blended solution including its sole active ingredient of 7.8% hydrogen peroxide through an atmospheric cold plasma arc. The newly formed iHP&#8482; fog and mist consists of submicron&#8217;s to 3-micron radical particles that are carried throughout the treatment area in a fog or mist moving with the same velocity and characteristics of a gas. This allows the ionized hydrogen peroxide fog or mist to affect all surfaces and air space throughout the targeted treatment area, over, above and beyond the ability of a manual cleaning processes. iHP&#8482; damages pathogenic organisms through the oxidation of proteins, carbohydrates, and lipids. SteraMist&#174; no-touch disinfection and or decontamination treat areas mechanically, causing cellular disruptions and/or dysfunctions resulting in a 6-log (99.9999%) and greater kill or inactivation of all pathogens in the treatment area. This is a science that the world needs to follow. This simple and effective process-takes 7.8 % hydrogen peroxide and under pressure pushes the liquid through a nozzle in which the stream is met by an atmospheric cold plasma arc which converts the hydrogen peroxide into a plasma created hydroxyl radical with 6-log and greater kill. This is a duplication of what occurs in atmospheric chemistry and the only by-product is oxygen and humidity. The world needs to thank, Titan Defense, DARPA and of course nature for the science behind our technology!</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">4</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Under the Federal Insecticide, Fungicide, and Rodenticide Act (&#8220;FIFRA&#8221;), we are required to register with the EPA and certain state regulatory authorities as a seller of disinfectants. In June 2015, SteraMist&#174; BIT&#8482; was registered with the EPA as a hospital-healthcare disinfectant and general broad-spectrum surface disinfectant for use as a misting/fogging agent. SteraMist&#174; BIT&#8482; now holds EPA registrations (# 90150-2) for mold control, and air and surface remediation (# 90150-1). In February 2016, we expanded our label with the EPA to include Clostridium difficile Spores and MRSA, as well as the influenza (Avian) virus h1n1, which we believe has better positioned us to penetrate all industries including the biodefense and healthcare industry. In August 2017, our EPA label was further expanded to include efficacy against Salmonella and Norovirus. As of January 27, 2017, our technology is one of 53 of the EPA&#8217;s &#8220;Registered Antimicrobial Products Effective against Clostridium difficile Spores&#8221;, as published on the EPA&#8217;s K List. Further, in December 2017, SteraMist&#174; was included in the EPA&#8217;s list G (Norovirus), L (Ebola) and M (Avian Flu). In March 2020, our EPA label was further amended to include Emerging Viral Pathogens claims, thus meeting the criteria against Enveloped viruses and Large Non-enveloped viruses and included on List N (Emerging Viral Pathogens including SARS-CoV-2). In 2021, the EPA granted SteraMist&#174; BIT&#8482; 0.35% hydrogen peroxide &#8211; EPA registration number 90150-3.&#160; On June 2, 2022, SteraMist was included on the EPA&#8217;s List Q for the use of its BIT solution to help fight the spread of rare or novel viruses such as Monkeypox virus, SARS-CoV-2 and its variants that causes COVID-19.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">SteraMist&#174; BIT&#8482; brings to the world a mechanical and automated method of cleaning using a game-changing technology and EPA registered Hospital-HealthCare disinfectant providing an upgrade to existing disinfecting and cleaning protocols while limiting liability in a facility when it comes to resistant infectious pathogens.&#160; We maintain this registration in all fifty (50) states, Washington DC, Canada, and approximately forty (40) other countries receive our product.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our Technology</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">BIT<sup style="vertical-align:super">&#8482;</sup> was initially developed in response to Amerithrax, the weaponized anthrax spore attacks that occurred in Washington, D.C. shortly after the September 11, 2001 U.S. terrorist attacks. BIT<sup style="vertical-align:super">&#8482;</sup> is a patented process that aerosolizes and activates a low concentration hydrogen peroxide solution, producing a fine aqueous mist (0.3-3 um in diameter) that contains a high concentration of Reactive Oxidative Species (&#8220;ROS&#8221;), mostly hydroxyl radicals (&#8220;OH&#8221;). ROS cause damage to pathogenic and resistant organisms, such as bacteria, bacteria spores, viruses, mold spores, other fungi and yeast, via oxidation of proteins carbohydrates, lipids and rendering the building blocks of nature&#8217;s amino acids, DNA and RNA inactive - leading to cellular death, disruption and/or dysfunction.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Testing detailed by DARPA demonstrated these hydroxyl radicals aggressively break the double bonds and other bonds in bacteria, bacterial spores, fungi, fungus spores, viruses and certain biological and chemical warfare agents and neutralize their threat while producing nontoxic by-products. The unique alteration of the chemistry of our solution occurs after our EPA-registered solution passes through an atmospheric cold plasma arc, which causes the breaking of the double bond of a hydrogen peroxide molecule, the net result - our <strong><sup style="vertical-align:super">.</sup></strong>OH hydroxyl radical. This hydroxyl radical is known as iHP<sup style="vertical-align:super">&#8482;</sup>. This patented process allows these hydroxyl radicals to exist in high concentrations without rapidly recombining and losing their reactivity, while seeking to attach with any and all surfaces within the proximity of TOMI&#8217;s mist.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The sole active ingredient of BIT<sup style="vertical-align:super">&#8482; </sup>is a low percentage (7.8%) Hydrogen Peroxide and is represented by the TOMI<sup style="vertical-align:super">&#8482;</sup> SteraMist<sup style="vertical-align:super">&#174;</sup> brand of products. Our technology produces a germ-killing aerosol that moves throughout a space like a gas. Our technology is able to efficiently and effectively kill pathogenic and resistant organisms in the air and on the surfaces without damaging delicate equipment or computers, and the only by-product is oxygen and water in the form of humidity.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Each and every SteraMist<sup style="vertical-align:super">&#174;</sup> product utilizes the innovative and easy-to-use power of Binary Ionization Technology which is designed to be easily incorporated into any industry&#8217;s current cleaning procedures. No wipe, no rinse, no residue, non-corrosive, high level efficacy, quick turnaround time, superior material compatibility (spray direct on sensitive equipment), and a submicron particle allows the mist/fog to reach every area being treated regardless of what is in the space.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SteraMist<sup style="vertical-align:super">&#174;</sup> is being used throughout the world and has been demonstrated to reduce certain resistant problem organisms, such as bacterial spores, Vancomycin-resistant Enterococcus (&#8220;VRE&#8221;), Clostridium <em>difficile</em>, Middle East Respiratory Syndrome (&#8220;MERS&#8221;), Ebola (&#8220;Ebola&#8221;) and SARS CoV-2 the virus that causes COVID. In U.S. hospitals where SteraMist<sup style="vertical-align:super">&#174;</sup> is being used for terminal cleaning, evidence has demonstrated a reduction of Clostridium <em>difficile</em> spore rates. SteraMist<sup style="vertical-align:super">&#174;</sup> has reduced outbreaks of nosocomial MDRO&#8217;s (Klebsiella <em>pneumoniae,</em> AB, pseudomonas <em>aeruginosa</em>) at large hospital to small clinics and has contributed to the control of MERS, Ebola and COVID throughout the world.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">5</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Although our technology was developed to combat the hardest to kill pathogens and neutralize the most difficult chemical agents, our products and services have been used by our customers who are fighting at the front lines of combating the COVID-19 pandemic, especially from early 2020 to 2021. As the COVID-19 pandemic gradually subsided, our customers continue to use our products in new general cleaning protocols due to the impact of the COVID-19 pandemic.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our technology passed a sanctioned test showing six-log reduction against Geobacillus <em>stearothermophilus</em>. Geobacillus <em>stearothermophilus</em> is the laboratory testing gold standard and is commonly used as a challenge organism for sterilization validation studies and periodic check of sterilization cycles. BIT<sup style="vertical-align:super">&#8482;</sup> has also been shown to effectively decontaminate weaponized biological agents, including weaponized anthrax, chemical agents such as VX (an extremely toxic organophosphate) and sulfur mustard (otherwise known as mustard gas) when applied using properly developed international protocols.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">SteraMist<sup style="vertical-align:super">&#174;</sup> products are fully validated or are in the final process of completion to comply with good manufacturing practice standards, have received Conformit&#233; Europ&#233;ene (&#8220;CE&#8221;) marks in the European Economic Area (&#8220;EEA&#8221;) and are approved by Underwriters Laboratory (&#8220;UL&#8221;). Our solution is manufactured at an EPA-registered solution blender and our product performance is supported by good laboratory practice efficacy data for Staphylococcus <em>aureus</em>, Pseudomonas <em>aeruginosa</em>, Salmonella, Norovirus, SARS CoV-2, mold spores, MRSA, h1n1, Geobacillus <em>stearothermophilus</em> and Clostridium <em>difficile </em>spores.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our Products and Services</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font-size:10pt;text-align:left;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraPak<sup style="vertical-align:super">&#174;</sup></span></em></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">SteraPak<sup style="vertical-align:super">&#174;</sup> is our most affordable and portable SteraMist system yet.&#160; The all-in-one SteraPak<sup style="vertical-align:super">&#174;</sup> places the SteraMist<sup style="vertical-align:super">&#174;</sup> technology onto the technicians back, delivering premium disinfection utilizing a rechargeable battery and cordless operation.&#160; Comfortable to use, easy to operate, and has AC and DC power functionality ensuring compatibility in all countries.&#160; The SteraPak<sup style="vertical-align:super">&#174;</sup> is sold with a case of BIT Solution of eight (8) 32-ounce bottles. The single applicator Pak enables disinfection of all surfaces, including high touch, sensitive equipment, and electronics. An application time of only five seconds per square foot with no wet contact time allows for safe re-entering of the space within minutes after application.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:20%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg1.jpg" alt="tomz_10kimg1.jpg" /></p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraMist<sup style="vertical-align:super">&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Surface Unit</span></em></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our SteraMist<sup style="vertical-align:super">&#174;</sup> Surface Unit is a fully portable, handheld, point and spray disinfection/decontamination system intended to provide quick turnover of any affected space. The single applicator unit enables disinfection of all surfaces, including high touch, sensitive equipment and electronics. An application time of only five seconds per square foot with no wet contact time allows for safe re-entering of the space within minutes after application.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our SteraMist<sup style="vertical-align:super">&#174;</sup> Surface Unit is lightweight, easy to transport and capable of achieving reliable disinfection/decontamination results, as it is easily incorporated into existing cleaning procedures and protocols. The SteraMist<sup style="vertical-align:super">&#174;</sup> Surface Unit does not require heating, ventilation or air conditioning systems to be shut down. Further, its touchless application (no wipe, no rinse) reduces risk of cross-contamination between treated surfaces.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg2.jpg" alt="tomz_10kimg2.jpg" /></p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraMist<sup style="vertical-align:super">&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline">Environment System</span></em></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our SteraMist<sup style="vertical-align:super">&#174;</sup> Environment System is a transportable, remotely controlled system that provides complete room disinfection/decontamination of a sealed space up to 103.8 m<sup style="vertical-align:super">3</sup> (3,663 ft<sup style="vertical-align:super">3</sup>) in just under 45 minutes (application and dwell time). Individually, each remote applicator can be used to treat a space of approximately 34.6 m<sup style="vertical-align:super">3</sup> (1,221 ft<sup style="vertical-align:super">3</sup>). Injection times are based on individual room size and number of applicators. Multiple systems can be used simultaneously to accommodate larger or multiple spaces with fast application and minimal down time. Our hybrid technology applicators can be used in both manual and/or fogging modes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our SteraMist<sup style="vertical-align:super">&#174;</sup> Environment System features additional programmable and printable features in PDF format. Other key features include lot # of BIT<sup style="vertical-align:super">&#8482;</sup> Solution, location identifier, injection/dwell/aeration times, and error notifications. These features are required for many Life Science facilities.</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg3.jpg" alt="tomz_10kimg3.jpg" /></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">6</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font-size:10pt;text-align:left;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">The SteraMist<sup style="vertical-align:super">&#174; </sup>Total Disinfection Cart</span></em></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The Total Disinfection Cart was designed with input of public healthcare facilities EVS (Environmental Service) teams using our equipment for the SHIELD study that TOMI was participating in. The cart houses our Surface Unit, a portable H<sub style="vertical-align:sub">2</sub>O<sub style="vertical-align:sub">2</sub> monitor, Carbon Air Scrubber, Respiratory Protection System with positive pressure air flow, storage hooks, and a sign notifying the room is being treated. Included with the Cart is a custom ICU 55-minute terminal cleaning protocol.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg4.jpg" alt="tomz_10kimg4.jpg" /></p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraMist<sup style="vertical-align:super">&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Select Surface Unit</span></em></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our Select Unit was designed to meet the needs of our customers who have smaller enclosures that require decontamination. This unit is lightweight and easy to transport with the added ability to function between a lower flow operation and standard operation, such as the SteraMist<sup style="vertical-align:super">&#174;</sup> Surface Unit. The user can adjust air flow, pump fluid flow, set the programmable timer for automatic runs, modify spray/dwell times and the number of treatment cycles along with being equipped with start and stop buttons. It is ideal for the decontamination of Biosafety cabinets, Laminar flow cabinets, Isolators and other small and medium size laboratory and research equipment.</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg5.jpg" alt="tomz_10kimg5.jpg" /></p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">Stainless Steel 90 Degree Applicator</span></em></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">TOMI&#8217;s standard applicator was converted to a 90 degree and manufactured using 316 stainless steel, the ideal applicator to accompany the Select Surface Unit, affording many 90-degree build-in opportunities. This applicator is purchased with a flange for ease of installation either permanently or semi-permanently.</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg6.jpg" alt="tomz_10kimg6.jpg" /></p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">7</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font-size:10pt;text-align:left;margin-left:auto;margin-right:auto;width:100%" cellpadding="2"><tbody><tr style="height:15px"><td colspan="2" style="padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">iHP<sup style="vertical-align:super">&#8482;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Plasma Decontamination Chamber</span></em></strong></p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;vertical-align:top;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our patented cold plasma technology can be integrated with a chamber or cage washer by leading manufacturers. Current examples are BetterBuilt, Allentown and Coy Lab. Our custom generator/chamber is built into a stainless-steel single door panel and is permanently mounted next to the chamber or washer, while a SteraMist<sup style="vertical-align:super">&#174;</sup> Applicator or 90 Degree Applicator is permanently or semi-permanently mounted in the enclosure. This SteraMist<sup style="vertical-align:super">&#174;</sup> product line includes but is not limited to an internally mounted air compressor, regulator for air pressure adjustment, E-stop button, lever power switch, data logging functions, and multiple dry contract outputs determined by the needs of the customer.</p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg7.jpg" alt="tomz_10kimg7.jpg" /></p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraMist<sup style="vertical-align:super">&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Custom Engineered System (CES)</span></em></strong></p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;vertical-align:top;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The SteraMist<sup style="vertical-align:super">&#174;</sup> permanent installation is perfect for any room that requires routine automated decontamination. The CES is an automated system that is installed and plumbed utilizing the facilities&#8217; existing HVAC system. This involves permanently installing SteraMist<sup style="vertical-align:super">&#174;</sup> applicators within the designated space to achieve maximum results. The generator and Programmable Logic Control (&#8220;PLC&#8221;) are housed in a National Electrical Manufacturers Association (&#8220;NEMA&#8221;) enclosure in a central remote location. The entire system can be developed for multiple rooms and various specifications, controlled remotely through the NEMA interface. The status of the decontamination cycle is monitored with indicators and can be integrated into a Supervisory Control and Data Acquisition (&#8220;SCADA&#8221;) monitoring board. The system is now available with a scale to measure the use of BIT Solution for a customer&#8217;s ease of reordering our consumable and comes in a variety of drum sizes. In addition, this product includes a new upgrade of 90-degree rotating applicators providing even faster equal dispersion of the iHP&#8482; fog.</p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg8.jpg" alt="tomz_10kimg8.jpg" /></p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">iHP<sup style="vertical-align:super">&#8482;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Corporate Service Decontamination</span></em></strong></p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;vertical-align:top;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">TOMI offers full room, equipment, facility, and emergency disinfection and decontamination services by certified SteraMist technicians. Our goal is to give our customers a fully tailored service that provides quality control by reducing bioburden and eliminate the potential for costly microbial contamination in the Life Sciences and Food Safety industries. Single and routine services are provided to TOMI customers to coincide with maintenance, mandatory facility shutdowns, or to control a specific threat.&#160; SteraMist technicians provide an efficient 4-step facility disinfection decontamination: site review, protocol generation, deployment and service, and post-treatment reporting. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="padding-bottom:2px;padding-top:2px;padding-left:2px;padding-right:2px;padding:2px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10kimg9.jpg" alt="tomz_10kimg9.jpg" /></p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">8</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Industries &amp; Market Segments</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our SteraMist<sup style="vertical-align:super">&#174;</sup> products are designed to address a wide spectrum of industries using iHP<sup style="vertical-align:super">&#8482;</sup>. Our operations consist of five main divisions based on our current target industries: Hospital-HealthCare, Life Sciences, TOMI Service Network (&#8220;TSN&#8221;), Food Safety, and Commercial.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We continue to offer our customers a wide range of innovative mobile products designed to be easily incorporated into their existing disinfection and decontamination procedures and protocols. Our newly released SteraPak, among other product lines will allow us to progress further into market share, specifically for our Life Science, Hospital-HealthCare, TSN, and Commercial divisions. Additionally, we offer integrated facility equipment installations known as Custom Engineered Systems (&#8220;CES&#8221;), routine &amp; emergency iHP Corporate Service, essential training packages, validations and qualifications, and onsite performance maintenance requests.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Each of these are structured to address the unique disinfection and decontamination needs of our customers worldwide regardless of industry requiring or requesting SteraMist<sup style="vertical-align:super">&#174;</sup> disinfection decontamination.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">A brief overview of the target industries is presented below:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Life Sciences</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The SteraMist<sup style="vertical-align:super">&#174; </sup>Environment System, CES, the SteraMist<sup style="vertical-align:super">&#174;</sup> Select Surface Unit (Plus), SteraBox, 90 Degree Applicator and our iHP<sup style="vertical-align:super">&#8482;</sup> Corporate Service Division, are designed to be tailored to provide a complete solution to address the regulatory inspections of disinfecting/decontaminating and Installation Qualification (IQ)-Operational Qualification (OQ)&#8211;Performance Qualification (PQ) validation processes within the life sciences industry.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Long term, ongoing projects and validations continue to be a focus and lead to proposals and interest for our CES permanent decontamination room. As these are longer lead-time sales and manufactured upon order that can take months to design, procure, assemble, and implement, we expect installations to have material impact to our results in 2023 and 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">TOMI&#8217;s iHP service department continues to grow with new and existing customers in several divisions. In the life science sector, TOMI&#8217;s iHP service department has kept its relationships with large pharmaceuticals (Pfizer/ThermoFisher) as well as adding several smaller life science companies (ForDoz/Lonza) to a regular decontamination schedule. In addition to these productions&#8217; facilities, TOMI has treated four BSL-3 research laboratories in all parts of the country within the last two months (UNM/UNC/Bioqual/Scripps). The food safety department steadily gains traction as several plant/produce companies have expressed interest as new and emerging bacteria, toxins, and fungi hamper production. Finally, the commercial division is a stable source of revenue for TOMI and its service network as many public facilities are feeling the effects of Hurricane Ian.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For 2023 and beyond, TOMI expects growth in SteraMist CES bids and the manufacturing and implementation of these fully automated decontamination systems. The installed CES will also result in increased solution sales for Life Sciences as the CES&#8217;s are used at regular intervals. The first CES system was completed in 2016 for Dana Farber Cancer Institute, as Dana Farber was designing a new vivarium and had the opportunity to integrate several new technologies to advance overall efficiency, quality, and design. One such technology was the use of our iHP decontamination. TOMI&#8217;s CES is an automated system that can be fully integrated into any company&#8217;s infrastructure, enabling decontamination, without burdening manual use and with the collaboration of current premier customers and partners, TOMI has further perfected the system. The CES eliminates issues such as human error, guarantees accuracy that is unmatched by competitors, and decreases a client&#8217;s labor cost and downtime, and in a short time the CES may make up a majority of TOMI&#8217;s revenue. Since its launch, SteraMist&#8217;s CES has become a leading solution to growing customer demands.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">9</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Hospital-Healthcare</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">The SteraMist<sup style="vertical-align:super">&#174;</sup> line of products, specifically the SteraMist<sup style="vertical-align:super">&#174;</sup> Surface Unit and SteraMist<sup style="vertical-align:super">&#174;</sup> Total Disinfection Cart, are our main solutions to aid our Hospital-HealthCare customers in providing high quality of safety to their patients and personnel by disinfecting operating rooms, pharmacies, ambulances, and emergency environments throughout a healthcare facility. TOMI&#8217;s latest product, the SteraPak<sup style="vertical-align:super">&#174;</sup>, further assists healthcare communities with an easy-to-use, cordless disinfection solution, creating a more mobile solution. Our customers that have successfully adopted our technology in Hospital-Healthcare facilities, have recurring revenue and reorder rates of our BIT<sup style="vertical-align:super">&#8482;</sup> Solution. We plan to continue to expand our marketing, advertising and educational campaigns targeted at the Hospital-Healthcare marketing to grow our customer base and increase adoption of our SteraMist<sup style="vertical-align:super">&#174;</sup> line of products.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our team of technicians and representatives train, maintain, and service capital equipment throughout the world for our Hospital-HealthCare customers. As our Training and Implementation department expands, we expect continued growth and purchases in our Hospital-HealthCare division. TOMI provides protocol development and implementation of SteraMist<sup style="vertical-align:super">&#174;</sup> as it is critical in the healthcare setting, including pandemic preparedness.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI anticipates expansion of current HealthCare customers to follow the model of Gila River Health Care. Gila River is one of TOMI&#8217;s largest Healthcare customers owning a total of fourteen (14) Surface Units and eight (8) SteraPak&#8217;s. The Gila River Indian Community (GRIC) is an Indian reservation in Arizona that is made up of seven (7) districts and is home to the Akimel O&#8217;oodham (Pima) and the Pee-Posh (Maricopa) tribes. Gila River Health Care, a premier Native American healthcare system, provides high quality patient care, delivering a wide variety of medical services such as general surgery, dental, and emergency medicine, as well as associated health services such as pharmacy and laboratory operations, skilled nursing, rehabilitation, and medical transport.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Food Safety</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">New challenges to food safety will continue to emerge, largely because of changes in our food production, food supply, storage complexities, transportation delays, including more imported foods. Changes in the environment leads to food contamination, new and emergent bacteria, toxins, and antimicrobial resistance. Food Safety presents an opportunity for significant growth for TOMI with continued product research and compliance testing.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The food safety industry in North America is under closer scrutiny with the implementation and enforcement of new and established guidelines. SteraMist<sup style="vertical-align:super">&#174;</sup> aerosolizing cold plasma technology is an effective decontaminant in the food safety industry. SteraMist can assist in compliance with the newly established Food Safety Modernization Act guidelines set in place by the FDA, as well as the Safe Food for Canadians Act and Safe Food for Canadians Regulations in Canada. Today&#8217;s Geopolitical aspects of farming and ranching has created an extra layer of concern for the protection of our global limited food supply including food transportation.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI continues to work with premium companies in testing and validating SteraMist<sup style="vertical-align:super">&#174;</sup> technology in the Food Safety and seed industries. In 2022, we made progress in enhancing brand awareness in the food safety industry by promoting and marketing this division. We are receiving an increase in inquiries within the Food Safety division directly from these efforts.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Every day there are news articles around the world pertaining to the contamination of food supply. Unsafe food containing harmful bacteria, viruses, parasites, or chemical substances causes more than 200 diseases, ranging from diarrhea to cancers. It also creates a vicious cycle of disease and malnutrition, particularly affecting infants, young children, elderly and the sick. With the global population explosion, severe worldwide avian flu pandemics resulting in the unnecessary culling of bird flocks, unusually high accidents resulting in the destruction of over 30 storages, packing and processing food plants, in the U.S. alone, we anticipate an increase in the demand for a mechanical way to disinfect our food supply. TOMI has, in cooperation with the USDA, demonstrated that our technology offers a consistent, quick, and effective alternative to the traditional, decade&#8217;s old chemical disinfection process.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">10</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">SteraMist will deliver more consistent and quicker results in all areas of our food supply&#8211;From Farm to Market, Processing to Packaging, and Storage to Delivery. We are currently pursuing all these avenues. Continued testing and market demand coupled with our new BIT&#8482; 0.35% hydrogen peroxide label will make pursuing these opportunities successful. In addition, our solution and process are environmentally friendly in that the by-product of SteraMist is only oxygen and water in the form of humidity. We have our solution listed on OMRI and labeled as organic. Most disinfectants leave residue on equipment, furniture, objects, and foods. SteraMist does not leave any chemical residue on any surface. We have a very low carbon footprint, if any, just oxygen and humidity. SteraMist is the perfect product for the global current issues in food safety. We are told we consume too much food, we produced too little food, and our farming screws up the environment, SteraMist is ready to assist in the defense of our food industry for whatever their needs are.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>TOMI Service Network</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The TOMI Service Network, or TSN, is an expansive network consisting of professionals throughout North America who are exclusively licensed and trained to use the SteraMist<sup style="vertical-align:super">&#174; </sup>products. With the purchase of SteraMist and joining TSN, TOMI trains and services a wide array of professional remediation companies in the use of SteraMist<sup style="vertical-align:super">&#174;</sup> throughout the TSN division. TSN allows for increased accessibility and brand awareness of iHP<sup style="vertical-align:super">&#174;</sup> services to facilities in need of local routine and emergency disinfection and decontamination.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The TOMI Service Network (&#8220;TSN&#8221;) division is addressing the cleaning protocols that have changed permanently due to the COVID-19 pandemic, and our network is expected to play a significant role in facilitating and maintaining these protocols throughout the United States and Canada. The urgency for emergency disinfection services is starting to pick up due to employees returning to work and the increasing number of contagious variants becoming more of a world concern. Our education and support of such services that TOMI personnel provide to our members creates an advantage by maintaining strong business relationships while they service thousands of SteraMist<sup style="vertical-align:super">&#174;</sup> customers, and the world returns to the new normal which will always focus on emerging pathogens.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our SteraPak<sup style="vertical-align:super">&#174;</sup> release is an important factor for this market that we will increase the new member onboarding. Current members are showing interest in purchasing the SteraPak<sup style="vertical-align:super">&#174;</sup> to expand their current SteraMist<sup style="vertical-align:super">&#174;</sup> offerings.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Commercial</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our Commercial division includes but is not limited to use sites such as aviation, airports, police and fire, prisons, manufacturing companies, automobile, military, cruise ships, shipping ports, preschool education, primary and secondary schools, colleges including dormitories, all modes of public and private transportation, regulatory consulting agencies, retail, housing and recreation, and of course emergency preparedness for counties and cities to use SteraMist<sup style="vertical-align:super">&#174;</sup> throughout their community.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The Surface unit and SteraPak<sup style="vertical-align:super">&#174;</sup> is a popular product for this division because customers are looking for a more cost-effective solution compared to the current disinfectants on the market. As quick and mobile disinfection solution is preferred in this industry, we believe that our surface unit along with the SteraPak<sup style="vertical-align:super">&#174;</sup> will generate customer interest and create sales opportunities. Currently our customers are purchasing our products in all of our divisions to provide quick disinfection throughout various sites in their facilities.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>INFORMATION WITH RESPECT TO OUR BUSINESS IN GENERAL</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Manufacturing</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We outsource the manufacturing and blending of our SteraMist<sup style="vertical-align:super">&#174;</sup> line of equipment and BIT<sup style="vertical-align:super">&#8482;</sup> Solution. Our SteraMist<sup style="vertical-align:super">&#174;</sup> equipment is manufactured by ISO9001 registered companies with multiple facilities in Pennsylvania, New York, New Jersey, North Carolina, California, and Australia.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our solution is blended by an EPA approved blender; our blend includes one (1) sole active ingredient, 7.8% Hydrogen Peroxide.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI maintains ownership of all the SteraMist<sup style="vertical-align:super">&#174;</sup> product lines, including our BIT<sup style="vertical-align:super">&#8482;</sup> Solution. Neither our manufacturer nor chemical blender may make modifications to the manufacturing or blending of our products without our request or consent in written format. TOMI maintains all creative control throughout the design and manufacturing process, which includes research &amp; development through final product fabrication.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">11</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Intellectual Property</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our success depends in part upon our ability to obtain and maintain proprietary protection for our products and technologies. We protect our technology and products by, among other means, obtaining United States and foreign patents. There can be no assurance, however, that any patent will provide adequate protection for the technology, system, product, service or process it covers. In addition, the process of obtaining and protecting patents can be long and expensive. We also rely upon trade secrets, technical know-how, and continuing technological innovation to develop and maintain our competitive position.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As part of our intellectual property protection strategy, we have registered our BIT<sup style="vertical-align:super">&#8482;</sup> solution with the EPA, all fifty (50) states in the United States, and multiple countries worldwide. We have received or are in the process of receiving Conformit&#233; Europ&#233;ene (&#8220;CE&#8221;) marks in the European Economic Area (&#8220;EEA&#8221;) and are approved by Underwriters Laboratory (&#8220;UL&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our portfolio includes more than twenty (20) Utility Patent applications worldwide which expire at various dates through the year 2042 for both method and system claims on SteraMist&#174; BIT&#8482;, either published or undergoing prosecution. We continue to pursue further claims to additional capabilities in on-going United States and worldwide patent applications. We have obtained two related United States utility patents giving us protection of our technology until the year 2038. We have obtained utility patents for our technologies in diverse countries such as Brazil, Japan, Korea, Israel, Australia, Taiwan, Canada, Mexico, and, currently pending, in Europe and Singapore, and continue to pursue protections all over the world.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have submitted utility patent applications in multiple countries, including Europe, China, Brazil, Korea and Australia for further additional applications of SteraMist BIT, and a related application has already been determined novel and inventive in Taiwan, Japan, and Singapore. We have been awarded a design patent on our surface-mounted applicator device in the United States, China, Japan, Taiwan, and Korea. We have filed and have been granted or have pending acceptance on thirty-two (32) separate design patents for our: Decontamination Chamber(s), Decontamination Applicator, Decontamination Cart, Applicator, and Surface Mounted Applicator 90-Degree Device. These patents are published around the world, including but not limited to United States, China, Hong Kong, Europe, United Kingdom, Singapore, Taiwan, Vietnam, Canada, South Korea, and Japan. We are also pursuing IP protection for further applications of our SteraMist BIT in diverse fields in multiple jurisdictions, such as food decontamination and, as the initial DARPA grant proved the application of iHP for the protection of buildings post outbreak or after a biological attack. With worldwide attention on the etiology of SARs CoV2 coming from a lab leak, attention on the prevention and control of a leak or mishap should be on the mind of all the biological labs managers around the world. The fact that iHP and our BIT platform can be incorporated in a new or existing buildings to create an &#8220;immune building&#8221; should assist in further lab applications of SteraMist in the biosecurity industry in the future</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our products are sold around the world under various brand names and trademarks. We consider our brand names and trademarks to be valuable in the marketing of our products. As of today, we have over two hundred trademarks, (word and/or logo) registered or pending across the globe. TOMI registers marks in eight (8) classes of specification of goods and services: Class 1 for Chemicals for Treating Hazardous Waste, Class 5 for Disinfectants, All-Purpose for Hard Surfaces and for Treating Mold, Class 7 for Handheld Power Operated Spraying Machines, Class 11 for Sterilizers for Medical Use and Air Purification, Class 35 for Business Consultation and Management Services, Class 37 for General Disinfecting Services, Class 40 for Chemical Decontamination and Manufacturing Services, and Class 41 for Providing Education Training and information related to biological and bacterial decontamination services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Marketing and Distribution</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Through our brand awareness, marketing, social media presence and sales, our business growth objective is to be the global leader in disinfection and decontamination products sales, services, and manufacturing. We intend to continue to expand and support research and development on other decontamination and remediation solutions and to form more business alliances with strategic partners.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We continue to perform decontamination services within cleanrooms, bio-safety labs including BSL-3 and BSL-4 labs, tissue and blood labs, pharmaceutical labs, vivariums and research universities and we continue to secure additional license agreements with major remediation, construction, forensic clean-up and bio-safety servicing companies. Both of these strategies assist in the brand awareness and use of our suite of products.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">12</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We sell our products domestically through our internal sales force, as well as independent sales and manufacturing representatives. Internationally, our products are sold through exclusive and non-exclusive sales representatives and distributors. At the end of September 2021, we on boarded yet another new international partner. Critical Scientific Solutions are specialists in Australia and New Zealand who offer products and solutions to the pharma, biotech, medical device and research sectors. The company was established in 2016 by an executive team who has 30 plus years&#8217; experience for clean room products. The TOMI sales team is already working with Critical Scientific who within months has a large opportunity with the Australian Government agency responsible for scientific research.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Competition</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The decontamination and environmental infectious disease control industry is intensely competitive and highly regulated. Competition is intense in all five (5) of our divisions and includes many large and small competitors.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our competitors include companies that market other hydrogen peroxide-based products, such as Steris Corporation (&#8220;Steris&#8221;), Bioquell, Inc. (&#8220;Bioquell&#8221;) currently owned by Ecolab, Inc. (&#8220;Ecolab&#8221;) and The Clorox Company (&#8220;Clorox&#8221;), various ultraviolet companies and quad ammonia-chemical companies. During 2021 due to the COVID outbreak, new competitors that manufacture and sell electrostatic sprayers and biostatic protectants, specifically to the commercial industry, entered the market.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We believe our SteraMist<sup style="vertical-align:super">&#174;</sup> suite of products have a competitive advantage to our competitor&#8217;s products in that they are quicker and less caustic, provides a six log kill to a wide variety of pathogens and leave no residue or unpleasant odor. However, some of these competitors may have longer operating histories, greater name recognition, larger installed customer bases and substantially greater financial and marketing resources than us.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We believe that the principal factors affecting competition in our markets include name recognition and the ability to receive referrals based on client confidence in the service, and our abilities to discover, develop, market, and innovate, disruptive cost-effective products and services. There are no significant barriers of entry that could keep potential competitors from opening similar facilities. Our ability to compete successfully in the industry will depend, in large part, upon our ability to market and sell our indoor decontamination and infectious disease control products and services. There can be no assurance that we will be able to compete successfully in this industry, or that future competition will not have a material adverse effect on our business, operating results and financial condition.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Competitive Advantages</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We believe the SteraMist<sup style="vertical-align:super">&#174;</sup> technology has many advantages over its competition. Our technology can turn over a space to an end-user far faster than its competition. Our technology requires limited preparation to an area compared to our competitors and does not rely on fans or any outside force to move throughout a space. Our &#8220;iHP OH&#8221; is the smallest submicron 0.3-3-micron particle that receives a charge and can move around an area like a gas, going above, below, and beyond the hardest to reach areas.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Another key and critical advantage is the technology&#8217;s superior material compatibility. iHP kills on contact and leaves no dangerous byproducts in the areas being treated. It is important the world is educated and aware of the harsh chemicals that exist on the market, and used with electrostatic sprayers, as they will not ensure proper efficacy on the surface being treated as even if the chemical is EPA registered, it may not be compatible with the sprayer. For example, the sprayer may not be spraying enough of the chemical to kill the virus or the bacteria, in addition to a lot of these harsh chemicals and sprayers are destroying materials and equipment over time, creating a more costly product in the long run. Our low percentage of hydrogen peroxide serves as a competitive advantage with respect to transporting our product by air. Our major hydrogen peroxide competitors have to transport their chemicals by rail, road or sea as the Department of Transportation (DOT) will not allow a product that contains greater than 8% hydrogen peroxide to be transported by air.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our patented SteraMist technology can treat almost 4,000 cubic feet in 45 minutes with a contact time of only 15 minutes or spray surfaces 5 seconds per square foot with no wet contact time. Our technology has multiple competitive advantages required for disinfection SteraMist is no wipe, no rinse, no residue, non-corrosive, high level efficacy (developed by DARPA for Anthrax spores), quick turnaround time, superior material compatibility (spray direct on sensitive equipment), and our submicron-small micron particles which moves like a gas allows the mist/fog to reach every area being treated regardless of what is in the space.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">13</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">In summary, SteraMist<sup style="vertical-align:super">&#174;</sup><sup style="vertical-align:super"> </sup>offers the following competitive advantages:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Provides a 99.9999% or six-log kill and above kill (i.e., the statistical destruction of all microorganisms and their spores) on all challenged pathogens, on multiple surfaces including <em>Bacillus atrophaeus </em>spores, <em>Bacillus subtilis </em>spores and <em>Geobacillus stearothermophilus</em>, the spore that is considered a gold standard for validation of sterilization versus household/industrial cleaners that offer a 99.9% (sanitizing) or three-log kill to 99.99% (disinfection) or four-log kill.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Easy to use.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Does not require mixing of materials.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">No Touch.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">No Wipe, No Rinse.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Does not include silver ions or peracetic acid.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Leaves no residue.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Not affected by humidity or temperature.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Non-corrosive.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Does not damage medical or electronic equipment.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">By-products converts to water (humidity) and oxygen.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Research &amp; Development</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our research and development efforts focus on improving, extending and applying our proprietary technology in the field of mechanical cleaning and decontamination. Research and development expenses for the years ended December 31, 2022 and 2021, were approximately $352,000 and $573,000, respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Government Regulation</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our business is subject to various degrees of governmental regulation in the countries in which we operate. In the United States, the EPA, the FDA and other governmental authorities regulate the development, manufacture, sale, and distribution of our products and services. Our international operations also are subject to a significant amount of government regulation, including country-specific rules and regulations and U.S. regulations applicable to our international operations. Government regulations include detailed inspection of, and controls over, research and development, product approvals and manufacturing, marketing and promotion, sampling, distribution, record-keeping, storage, and disposal practices. SteraMist with 7.8% Hydrogen peroxide is not subject to stringent government regulations that usually apply to the transporting chemicals We believe that we are currently compliant in all material respects with applicable regulatory requirements. To date, every registration for our technology we have applied for has been accepted.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Employees</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">As of March 7, 2023, we have thirty (30) full-time executive, operational and administrative employees working within the United States. Most of our sales are conducted by global exclusive distribution agreements or domestically by our internal sales team or independent manufacturing representatives.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Available Information</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:24.5pt">We make available free of charge on or through our corporate website, https://tomimist.com/, our Annual Report on Form 10-K, Quarterly Reports on Form 10-Q, Current Reports on Form 8-K, proxy statements, and all amendments to those filings as soon as reasonably practicable after such material is electronically filed with, or furnished to, the Securities and Exchange Commission (&#8220;SEC&#8221;). Information contained on our website is not incorporated by reference unless specifically stated therein.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:24.5pt">In addition, the SEC maintains a website that contains reports, proxy statements, and other information about issuers, such as TOMI, who file electronically with the SEC. The address of the website is www.sec.gov.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i1a">Item 1A. RISK FACTORS.</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>Our business routinely encounters and attempts to address risks, some of which will cause our future results to differ, sometimes materially, from those originally anticipated. Below, we have described our present view of certain important risks. The risk factors set forth below are not the only risks that we may face or that could adversely affect us. If any of the risks discussed in this Annual Report on Form 10-K actually occur, our business, financial condition and results of operations could be materially adversely affected. If this were to occur, the trading price of our securities could decline significantly.</em> <em>In assessing these risks, investors should also refer to the other information contained or incorporated by reference in our other filings with the SEC.</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">14</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Risk Related to Our Company and Business</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We have a history of losses and may not be able to achieve profitability in the future. </em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We generated a net loss of approximately $2.9 and $4.4 million for the years ended December 31, 2022 and 2021, respectively. We also had an accumulated deficit of $46.4 million as of December 31, 2022. Prior to 2020, we had not generated any profit from our business operations. While we experienced an increase of our revenue and net income in 2020, primarily due to a significant increase of demand for our products as protective measures against the spread of the COVID-19 disease during the pandemic, such demand subsided in 2021 as the pandemic gradually came under control, which caused us to incur a net loss in 2021. In addition, we have been increasing our headcount and expenses to support our continued product development and planned growth, and if demand for our products declines and we are unable to sustain our recent increases in our net income, we may not be able to sustain profitability.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>A pandemic, epidemic or outbreak of an infectious disease in the United States or worldwide, including the outbreak of the novel strain of coronavirus disease, COVID-19, could adversely affect our business.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">If a pandemic, epidemic or outbreak of an infectious disease occurs in the United States or worldwide, our business may be adversely affected. In December 2019, a novel strain of coronavirus, SARS-CoV-2, was identified in Wuhan, China. Since then, the SARS-CoV-2 virus, and the resulting disease, COVID-19, has spread to most countries, and had caused the worldwide COVID-19 Pandemic. While the demand for our products generated from the COVID-19 Pandemic has positively impacted our financial position in 2020, it has negatively impacted our operational condition in two divisions by forcing us to implement various policies for the safety of our employees, including &#8220;work from home&#8221; policies and office social distancing policies, which may lead to lower productivity of our employees and a decrease in the innovation and advancement of our products. Beyond our own policies, numerous state and local jurisdictions have previously imposed, and others in the future may impose, &#8220;shelter-in-place&#8221; orders, quarantines, executive orders and similar government orders and restrictions for their residents to control the spread of COVID-19, which negatively affects our operations and potentially the demand for our products and services. However, these challenges will likely continue for the duration of the pandemic, which is uncertain, and may continue to negatively impact our operations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Other disruptions or potential disruptions include restrictions on the ability of our sales representatives and other personnel to travel and access customers for training and case support; disruptions in our production schedule and ability to manufacture and assemble products; delays in actions of regulatory bodies; diversion of or limitations on employee resources that would otherwise be focused on the operations of our business, including because of sickness of employees or their families or the desire of employees to avoid contact with groups of people; business adjustments or disruptions of certain third parties, including suppliers; increase in bad debts due to an adverse impact of the pandemic on our clients&#8217; cash flows and resulting decrease in collectability of our account receivables; and additional government requirements or other incremental mitigation efforts that may further impact our or our suppliers&#8217; capacity to manufacture our products.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">While the potential economic impact brought by, and the duration of any pandemic, epidemic or outbreak of an infectious disease, including COVID-19, may be difficult to assess or predict, the widespread COVID-19 pandemic could further disrupt the global financial markets, reducing our ability to access capital, which could in the future negatively affect our liquidity. In addition, a recession or market correction resulting from the spread of an infectious disease, including COVID-19, could materially affect our business for the same reasons.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Rapid growth may strain our internal resources, which would hamper our ability to manage our growth effectively, create operating efficiencies or sustain profitability.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We previously experienced rapid growth in the demand for our products and services in connection with the COVID-19 Pandemic and we may experience such rapid growth in the future, which may strain our financial and operational resources that were established to meet a lower level of demand. Due to such rapid growth, we may not be able to effectively manage the expansion of our operations or recruit and train additional qualified personnel at the pace needed to meet the demand for our products and services. Further, the expansion of our operations may lead to significant costs and may divert our management and business development resources. Any inability to manage our growth could delay the execution of our development and strategic objectives or disrupt our operations. Any operational disruptions may take the form of a decrease in the quality of customer service, reporting problems and delays in meeting important deadlines, all of which could result in a loss of market share and other problems that could adversely affect our reputation and financial performance.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">15</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our SteraMist</em></strong><em><sup style="vertical-align:super">&#174;</sup></em><strong><em> family of products currently accounts for the majority of our revenue, and our success is almost completely dependent on the success of our SteraMist</em></strong><em><sup style="vertical-align:super">&#174;</sup></em><strong><em> brand.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our SteraMist<sup style="vertical-align:super">&#174;</sup> family of products is currently our primary product offering, and we are completely dependent on its success. Successfully commercializing products such as ours is a complex and uncertain process. Our commercialization efforts will depend on the efforts of our management and sales team, our third-party manufacturers and suppliers and general economic conditions, among other factors, including the following:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">the effectiveness of our marketing and sales efforts in the United States and internationally;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">our third-party manufacturers and suppliers&#8217; ability to manufacture and supply the components of our SteraMist<sup style="vertical-align:super">&#174;</sup> products in a timely manner, in accordance with our specifications, and in compliance with applicable regulatory requirements, and to remain in good standing with regulatory agencies;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">the availability, perceived advantages, relative cost, relative safety, and relative efficacy of alternative and competing disinfection products;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">our ability to obtain, maintain, and enforce our intellectual property rights in and to our SteraMist<sup style="vertical-align:super">&#174;</sup> products;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">the emergence of competing technologies and other adverse market developments, and our need to enhance our SteraMist<sup style="vertical-align:super">&#174;</sup> products and/or develop new products to maintain market share in response to such competing technologies or market developments;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">our ability to raise additional capital on acceptable terms, or at all, if needed to support the commercialization of our SteraMist<sup style="vertical-align:super">&#174;</sup> products; and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">our ability to achieve and maintain compliance with all regulatory requirements applicable to our SteraMist<sup style="vertical-align:super">&#174;</sup> products.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have hired and trained additional sales personnel to account for the increased demand for our products. Despite this growth in sales personnel, we expect that our additional sales force will require lead time in the field to grow their network of accounts and achieve the productivity levels we expect them to reach in any individual territory. Furthermore, the use of our products will often require or benefit from direct support from us. If our sales representatives do not achieve the productivity levels, we expect them to reach, our revenue will not grow at the rate we expect, and our financial performance will suffer.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We do not have long-term customer contracts, and our sales history or backlog cannot be relied upon as an indicator of our future sales.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We do not have long-term contracts with any of our customers, and our sales history or backlog cannot be relied upon as a future indicator of our revenues. Our contracts and purchase commitments with customers may be canceled under certain circumstances. As a result, we are exposed to competitive price pressures on every order, and our agreements with customers do not provide assurance of future sales. Our customers are not required to make minimum purchases and may cease purchasing our products at any time without penalty. As such, our unfilled orders and previously completed sales should not be relied on as a measure of anticipated demand or future revenue.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our agreements with restoration industry specialists are not exclusive, which may allow for our competitors to sell their products and services to such specialists.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our agreements with restoration industry specialists under our TOMI Service Network program, which allows certain restoration specialists to use and sell our products, are not exclusive. This lack of exclusivity allows our competitors to sell products to the same restoration specialists, which could reduce our sales if our competitors&#8217; products are used in lieu of our products. Additionally, the use of our and our competitors&#8217; products by a restoration specialist may create market confusion between our products and the products of our competitors, which may adversely affect our brand reputation and business.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our success depends upon broad market acceptance of our technology that has not yet been achieved in the Hospital-Healthcare market.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our BIT technology as a Hospital-Healthcare disinfectant is relatively new, having received full Hospital registration for Clostridium <em>difficile </em>spores from the EPA in mid-2017. Our sales are dependent upon broad market acceptance of our technology that replaces long-standing failing manual cleaning techniques such as quaternary ammonium compounds and bleach for disinfection, with our no-touch mechanical process. The failure to obtain broad market acceptance inevitably leads to substantially increased lead times for sales until our prospective customers, particularly in the Hospital-Healthcare market, are accustomed to the use of newer mechanical technology. The inability to timely meet our sales goals could adversely affect our financial condition and results of operations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">16</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We are subject to a variety of risks associated with doing business internationally.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We maintain significant international operations, including operations in the U.S., Canada, Mexico, Europe, Asia Pacific and Latin America. As a result, we are subject to a number of risks and complications associated with international manufacturing, sales, services, and other operations. These include: risks associated with currency exchange rate fluctuations; requirements or preferences for domestic products or solutions, which could reduce demand for our products; difficulties in enforcing agreements and collecting receivables through some foreign legal systems; unexpected legal or regulatory changes; enhanced credit risks in certain countries and emerging market regions; significant variations in tax rates among the countries in which we do business, and tax withholding obligations in respect of our earnings; exchange controls or other trade restrictions including, the impact of the COVID-19 Pandemic on our supply chain and the industries in which we operate; customs clearance and shipping delays; general economic and political conditions in countries where we operate or where end users of our products are situated, including the potential implications of the COVID-19 Pandemic; natural disasters, political and economic instability, including wars, terrorism and political unrest, outbreak of disease, travel, social distancing and quarantine policies, boycotts, curtailment of trade, and other business restrictions affecting our ability to manufacture or sell our products; difficulties associated with managing a large organization spread throughout various countries; difficulties in enforcing intellectual property rights or weaker intellectual property right protections in some countries; and difficulties associated with compliance with a variety of laws and regulations governing international trade.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In late February 2022, Russia launched a large-scale military attack on Ukraine. The invasion significantly amplified already existing geopolitical tensions among Russia, Ukraine, Europe, NATO and the West, including the United States. In response to the military action by Russia, various countries, including the United States, the United Kingdom, and European Union issued broad-ranging economic sanctions against Russia. Such sanctions included, among other things, a prohibition on doing business with certain Russian companies, large financial institutions, officials and oligarchs; a commitment by certain countries and the European Union to remove selected Russian banks from the Society for Worldwide Interbank Financial Telecommunications (&#8220;SWIFT&#8221;), the electronic banking network that connects banks globally; and restrictive measures to prevent the Russian Central Bank from undermining the impact of the sanctions. Additional sanctions may be imposed in the future. Such sanctions (and any future sanctions) and other actions against Russia may adversely impact, among other things, the Russian economy and various sectors of the economy; result in a decline in the value and liquidity of Russian securities; result in boycotts, tariffs, and purchasing and financing restrictions on Russia&#8217;s government, companies and certain individuals; weaken the value of the ruble; downgrade the country&#8217;s credit rating; freeze Russian securities and/or funds invested in prohibited assets and impair the ability to trade in Russian securities and/or other assets; and have other adverse consequences on the Russian government, economy, companies and region. Further, several large corporations and U.S. states have announced plans to divest interests or otherwise curtail business dealings with certain Russian businesses.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The ramifications of the hostilities and sanctions, however, may not be limited to Russia and Russian companies but may spill over to and negatively impact other regional and global economic markets (including Europe and the United States), companies in other countries (particularly those that have done business with Russia) and on various sectors, industries and markets for securities and commodities globally, such as oil and natural gas. Accordingly, the actions discussed above and the potential for a wider conflict could increase financial market volatility, cause severe negative effects on regional and global economic markets, industries, and companies and have a negative effect on the Company&#8217;s performance. In addition, Russia may take retaliatory actions and other countermeasures, including cyberattacks and espionage against other countries and companies around the world, which may negatively impact such countries. The extent and duration of the military action or future escalation of such hostilities, the extent and impact of existing and future sanctions, market disruptions and volatility, and the result of any diplomatic negotiations cannot be predicted. These and any related events could have a significant impact on the Company&#8217;s performance.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>If our procedures to ensure compliance with export control laws are ineffective, our business could be harmed.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our sales to foreign entities are subject to far reaching and complex export control laws and regulations in the United States and elsewhere. Violations of those laws and regulations could have material negative consequences for us including large fines, criminal sanctions, prohibitions on participating in certain transactions and government contracts, sanctions on other companies if they continue to do business with us and adverse publicity.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">17</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Failure to comply with the U.S. Foreign Corrupt Practices Act (&#8220;FCPA&#8221;), and similar laws associated with our activities outside of the United States could subject us to penalties and other adverse consequences.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Failure to comply with the FCPA, and similar laws associated with our activities outside of the United States could subject us to penalties and other adverse consequences. We face significant risks if we fail to comply with the FCPA and other anti-corruption laws that prohibit improper payments or offers of payment to foreign governments and political parties for the purpose of obtaining or retaining business. In many foreign countries, particularly in countries with developing economies, it may be a local custom that businesses operating in such countries engage in business practices that are prohibited by the FCPA or other applicable laws and regulations. Any violation of the FCPA or other applicable anti-corruption laws could result in severe criminal or civil sanctions and, in the case of the FCPA, suspension or debarment from U.S. government contracting, which could have a material and adverse effect on our reputation, businesses, financial conditions, operating results and cash flows.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our operations are subject to environmental laws and regulations that may increase costs of operations and impact or limit our business plans.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We are subject to environmental laws and regulations affecting many aspects of our present and potential future operations, including a wide variety of EPA labeling and other state regulatory agency requirements. For example, under the Federal Insecticide, Fungicide, and Rodenticide Act, we are required to register with the EPA and certain state regulatory authorities as a seller of disinfectants, and we are subject to EPA labeling requirements for each use that SteraMist<sup style="vertical-align:super">&#174;</sup> is intended to address. Compliance with these laws and regulations may result in increased costs and delays as a result of administrative proceedings and certain reporting obligations. Public officials and entities may seek injunctive relief or other remedies to enforce applicable environmental laws and regulations. If we are found to not have complied with these laws and are unable to sell out products, our business and financial results will be negatively impacted.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our reliance upon third-party contractors, suppliers and manufacturers for the manufacture of our products increases the risk that we will not have sufficient quantities of our products or such quantities at an acceptable cost and reduces our control over the manufacturing process.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We rely upon third parties to supply us with our products. We outsource the manufacturing of our SteraMist<sup style="vertical-align:super">&#174;</sup> line of equipment to two manufacturing companies and use contract manufacturers to build our BIT-based systems, as we do not maintain our own manufacturing facilities. If we fail to maintain relationships with our current suppliers, we may not be able to effectively commercialize and market our products, due to risks including increased product costs, limited inventory that is not capable of meeting demand and the possible misappropriation of our proprietary information, such as our trade secrets and know-how. Further, as we maintain a limited number of manufacturers for our SteraMist<sup style="vertical-align:super">&#174;</sup> line of equipment and blenders for our SteraMist<sup style="vertical-align:super">&#174;</sup> solutions, alternative production facilities may not be available in the event of a disruption, or if alternative production facilities are available, the number of third-party suppliers with the necessary manufacturing and regulatory expertise to produce our products at their current quality level is limited, and it could be expensive and take a significant amount of time to arrange for and qualify alternative suppliers, which could have a material adverse effect on our business. Additionally, supply chain disruptions and access to materials have impacted our suppliers&#8217; ability to deliver products to us in a timely manner. In 2021, we saw significant disruptions to key supply chains that caused a delay in the delivery of batteries and molds from China.&#160; In addition, there was a shortage in the supply of bottles domestically that we use to carry our solutions.&#160; We expect such delays and shortages to continue in 2023.&#160; If these issues persist, they may further delay our ability to deliver our products and to recognize revenue.&#160; Any delay or impediment to our ability to recognize revenue for any given period could materially adversely affect our results of operations.&#160;&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Because of our reliance upon third parties to supply us with our products, we do not have control over the manufacturing process of our third-party suppliers and are dependent on such third-party suppliers for compliance with the regulations applicable to our products. Third-party suppliers may not be able, or fail, to comply with applicable regulatory requirements, which could result in sanctions being imposed on us, including fines, injunctions, civil penalties, delays, suspension or withdrawal of approvals, seizures or recalls, operating restrictions and criminal prosecutions, any of which could significantly and adversely harm our business and results of operations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our results of operations could be materially harmed if we are unable to accurately forecast customer demand for our products and manage our inventory.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">To ensure adequate inventory supply, we must forecast inventory needs and place orders with suppliers based on our estimates of future demand for our products and services. Our limited historical experience in foreign markets and recent increase in demand in the United States may lead us to inadequately forecast such inventory needs. Further, our ability to accurately forecast demand for our products could be negatively affected by many factors, including our failure to adequately manage our expansion efforts, product introductions by competitors, an increase or decrease in customer demand for products of our competitors, our failure to accurately forecast customer acceptance of new product enhancements, unanticipated changes in general market conditions or regulatory matters, and weakening of economic conditions or consumer confidence in future economic conditions.&#160; In addition, our demand may be affected by macro-economic factors beyond our control, including the COVID-19 pandemic, which can cause sudden and substantial increase or decrease of demand on short notice, making it more difficult to us to obtain accurate forecasts of customer demand. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">18</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Inventory levels in excess of customer demand may result in inventory write-downs or write-offs, which would cause our gross margin to be adversely affected and could impair the strength of our brand. Similarly, a portion of our inventory could become obsolete or expire, which could have a material and adverse effect on our earnings and cash flows due to the resulting costs associated with inventory impairment charges and costs required to replace obsolete inventory. Any of these occurrences could negatively impact our financial performance.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Conversely, if we underestimate customer demand, we may not be able to deliver sufficient products to meet our customers&#8217; requirements, which could result in damage to our reputation and customer relationships. In addition, if we experience a significant increase in demand, additional supplies of raw materials or additional manufacturing capacity may not be available when required on terms that are acceptable to us, or at all, and suppliers or our third-party manufacturers may not be able to allocate sufficient resources to meet our increased requirements, which could have an adverse effect on our ability to meet customer demand for our products and our results of operations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our success depends on our ability to adequately protect our intellectual property.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our commercial success depends, in part, on our ability to obtain, maintain, defend, file new or enforce our existing patents, trademarks, trade secrets and other intellectual property rights covering our technologies and products throughout the world. We may, however, be unable to adequately preserve such rights due to a number of reasons, including the following:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">our rights could be invalidated, circumvented, challenged, breached or infringed upon;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">we may not have sufficient resources to adequately prosecute or protect our intellectual property rights;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">upon expiration of our patents, certain of our key technology may become widely available; or</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">third parties may be able to develop or obtain patents for similar or competing technology.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Although we devote resources to the establishment and protection of our patents and trademarks, the actions we have taken or will take in the future may not be adequate to prevent violation of our patents, trademarks and proprietary rights by others or prevent others from seeking to block sales of our products as an alleged violation of their patents, trademarks and proprietary rights. In the future, litigation may be necessary to enforce our trademarks or proprietary rights and we may be forced to defend ourselves against claimed infringement or the rights of others. Any such litigation could result in adverse determinations that could have a material adverse effect on our business, financial condition or results of operations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In addition, we rely in part upon unpatented trade secrets, unpatented know-how, and continuing technological innovation which may not yet, or may never be, patented, to develop and maintain our competitive position, which we seek to protect, in part, by confidentiality agreements with our employees and consultants. We also have agreements with our employees and consultants that obligate them to assign their inventions to us. It is possible that technology relevant to our business will be independently developed by a person that is not a party to such an agreement. In addition, if the employees and consultants who are parties to these agreements breach or violate the terms of these agreements, we may not have adequate remedies for any such breach or violation, and we could lose our trade secrets through such breaches or violations. To the extent that our commercial partners, collaborators, employees and consultants use intellectual property owned by others in their work for us, disputes may arise as to the rights in related or resulting know-how and inventions. Further, our trade secrets could otherwise become known or be independently discovered by our competitors, which would harm our business.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>We may be unable to enforce our intellectual property rights throughout the world.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As part of our growth strategy, we are seeking to expand our operations internationally. The laws of some foreign countries do not protect intellectual property rights to the same extent as the laws of the United States. Companies have encountered significant problems in protecting and defending intellectual property rights in certain foreign jurisdictions. To the extent that we have obtained or are able to obtain patents, trademarks or other intellectual property rights in any foreign jurisdictions, it may be difficult to stop the infringement of our patents, trademarks or the misappropriation of other intellectual property rights. For example, some foreign countries have compulsory licensing laws under which a patent owner must grant licenses to third parties. In addition, some countries limit the availability of certain types of patent rights and enforceability of patents against third parties, including government agencies or government contractors. In these countries, patents may provide only limited benefit or no benefit.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">19</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Proceedings to enforce our patent rights in foreign jurisdictions could result in substantial costs and divert our efforts and attention from other aspects of our business. Accordingly, efforts to protect our intellectual property rights in such countries may be inadequate. In addition, future changes in the law and legal decisions by courts in the United States and foreign countries may affect our ability to obtain adequate protection for our technology and products and the enforcement of intellectual property.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We face significant competition in our industry, some of which have longer operating histories, more established products or greater resources than we have currently.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The decontamination and environmental infectious disease control industry is extremely competitive. The competition includes remediators and disinfection/decontamination companies such as Steris, Bioquell (Eco-lab) and Clorox, various ultraviolet companies and quad ammonia-chemical companies. These competitors may have longer operating histories, greater name recognition, larger installed customer bases, a greater ability to provide similar products and services at a lower cost and substantially greater financial and marketing resources than us to develop new products and commercialize existing products. We believe that the principal factors affecting competition in our markets include name recognition, customer familiarity with products, effective marketing, competitive pricing strategies and the ability to receive referrals based on client confidence in the service. There are no significant barriers of entry that could keep potential competitors from opening similar facilities. Our ability to compete successfully in the industry will depend, in large part, upon our ability to market and sell our indoor decontamination and infectious disease control products and services. We may not be able to compete successfully in the remediation industry. Further, if one or more competitors successfully develops a decontamination product that is more effective, better tolerated, results in a better customer experience, is easier to use or otherwise more attractive than our products, our ability to continue to commercialize our products could be significantly and adversely affected due to a lack of ability to compete, which would have a material adverse effect on our business, financial condition and results of operations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>If the quality of our products do not meet the expectations of our customers, then our brand and reputation or our business could be adversely affected.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In the course of conducting our business, we must adequately address quality issues that may arise with our products, including defects in third-party components and inventory. We may not be able to eliminate or mitigate occurrences of these issues and associated liabilities. In addition, even in the absence of quality issues, we may be subject to claims and liability if the performance of products do not meet the expectations of our customers. If the quality of our products does not meet the expectations of customers, then our brand and reputation, and our ability to receive referral customer business, could be adversely affected.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our long-term growth depends, in part, on our ability to enhance, develop, market and sell new products, and if we fail to do so we may be unable to compete effectively.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">It is important to our business and our long-term growth that we continue to enhance and develop new products. We intend to continue to invest in research and development activities focused on improvements and enhancements to our existing intellectual property and product offerings. Our development goals include the development and commercialization of a variety of sanitizing robotic devices and backpack units. Despite our reasonable efforts, it may not be possible for us to innovate in a way to keep us competitive with other companies due to financial and time constraints which will negatively impact our business.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The development and initial production and enhancement of the decontamination systems we produce is often accompanied by design and production delays and related costs. If we are unable to introduce new products on our anticipated timeframe or financial cost, our business, financial condition and results of operations may suffer due to failing to remain competitive in our market.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">20</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We have a limited management team size which may reduce our ability to effectively manage our business operations as it grows.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Despite our current hiring efforts for non-management employees and redefining of job descriptions, we have a limited management team size. This limited management team may reduce our ability to effectively manage our business as it grows or respond to significant demand from customers. As we expand, we expect to increase the size of our management team. However, our management team may not be able to adequately manage our business, and any failure to do so could lead to a general negative impact to our business.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We are dependent on our key personnel, the loss of whom could adversely affect our operations, and if we fail to attract and retain the talent required for our business, we could be materially harmed.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our success is substantially dependent on the performance of our executive officers, including our Chairman and Chief Executive Officer, Dr. Halden S. Shane, the loss of whom would have a material adverse effect on our business.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We depend to a significant degree on our ability to attract, retain and motivate quality personnel. We further note that competition for highly skilled personnel is often intense. Moreover, our new sales representatives require a lengthy training process to achieve the requisite level of competency with our products.&#160; We may not be successful in attracting, integrating or retaining qualified personnel to fulfill our current or future needs, the failure of which would have a material adverse effect on our business.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our operations, and those of our suppliers, are subject to a variety of business continuity hazards and risks, any of which could interrupt production or operations or otherwise adversely affect our performance and results.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We are subject to business continuity hazards and other risks, including natural disasters, utility and other mechanical failures, labor difficulties, inability to obtain necessary licenses, permits or registrations, disruption of communications, data security and preservation, disruption of supply or distribution, safety regulation and labor difficulties. The occurrence of any of these or other events might disrupt or shut down operations, or otherwise adversely impact the production or profitability of a particular facility, or our operations as a whole. We may also be subject to certain liability claims in the event of an injury or loss of life, or damage to property and equipment, resulting from such events. Although we maintain property and casualty insurance, as well as other forms of insurance that we believe are customary for our industries, our insurance policies include limits and, as such, our coverage may be insufficient to protect against all potential hazards and risks incident to our business. Should any such hazards or risks occur, or should our insurance coverage be inadequate or unavailable, our business, prospects, financial condition and results of operations might be adversely affected.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Our products are subject to potential product liability claims which, if successful, could have a material adverse effect on our business, financial condition and results of operations.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We are exposed to significant risks for product liability claims if death, personal injury or property damage results from the use of our products. While we currently maintain insurance against product liability claims, we may experience material product liability losses in the future. Our insurance coverage may not continue to be available on terms that we accept, if at all, and our insurance coverage also may not adequately cover liabilities that we incur. A successful claim against us that exceeds our insurance coverage level or that is not covered by insurance, or any product recall, could have a material adverse effect on our business, financial condition and results of operations. In addition, product liability and other claims can divert the attention of management and other personnel for significant periods of time, regardless of the ultimate outcome. Further, claims of this nature may cause our customers to lose confidence in our products and us. As a result, an unsuccessful defense of a product liability or other claim could have a material adverse effect on our financial condition, results of operations and cash flows.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>The misuse of our products may harm our reputation in the marketplace, result in injuries that lead to product liability suits or result in costly investigations, fines or sanctions by regulatory bodies if we are deemed to have engaged in the promotion of these uses, any of which could be costly to our business.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Customers, technicians, or service providers could use our products in a manner that is inconsistent with the products&#8217; intended use. We train our marketing personnel and sales representatives to not promote our products for uses outside of the intended use, however, we cannot otherwise prevent all instances of misuse. Further, the marketing and sales representatives that we have hired to help meet the demand for our products may not have received proper training or have the working knowledge needed to adequately advise our customers how to safely use our products. Misuse of our products may cause an increased risk of injury to customers, which could harm our reputation in the marketplace, as well as lead to potential product liability lawsuits.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">21</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We may seek to grow our business through acquisitions of complementary products or technologies, and the failure to manage acquisitions, or the failure to integrate them with our existing business, could harm our business, financial condition and operating results.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">From time to time, we may consider opportunities to acquire other companies, products or technologies that may enhance our product platform or technology, expand the breadth of our markets or customer base, or advance our business strategies. Potential acquisitions involve numerous risks, including: problems assimilating the acquired products or technologies; issues maintaining uniform standards, procedures, controls and policies; unanticipated costs associated with acquisitions; diversion of management&#8217;s attention from our existing business; risks associated with entering new markets in which we have limited or no experience; increased legal and accounting costs relating to the acquisitions or compliance with regulatory matters; and unanticipated or undisclosed liabilities of any target.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have no current commitments with respect to any acquisition. We do not know if we will be able to identify acquisitions, we deem suitable, whether we will be able to successfully complete any such acquisitions on favorable terms or at all, or whether we will be able to successfully integrate any acquired products or technologies. Our potential inability to integrate any acquired products or technologies effectively may adversely affect our business, operating results and financial condition.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>The requirements of being a public company may strain our resources, divert management&#8217;s attention and affect our ability to attract and retain executive management and qualified board members.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have and likely will continue to incur significant legal, accounting and other expenses as a public company subject to the reporting requirements of the Securities Exchange Act of 1934, the Sarbanes-Oxley Act of 2002 (&#8220;SOX&#8221;), the Dodd&#8211;Frank Wall Street Reform and Consumer Protection Act and other applicable rules and regulations. Our management and other personnel devote a substantial amount of time to these compliance initiatives. Moreover, these rules and regulations have increased our legal and financial compliance costs and will make some activities more time-consuming and costly. For example, applicable rules and regulations could make it more difficult for us to attract and retain qualified persons to serve on our board of directors (the &#8220;Board), or as executive officers.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In addition, SOX requires, among other things, that we maintain effective internal control over financial reporting and disclosure controls and procedures. Our testing, or the potential subsequent testing by our independent registered public accounting firm in future periods, may reveal deficiencies in our internal control over financial reporting that are deemed to be material weaknesses. Our compliance with Section 404 of SOX may require that we incur substantial expense and expend significant management time on compliance-related issues. Moreover, if our independent registered public accounting firm identifies deficiencies in our internal control over financial reporting that are deemed to be material weaknesses, the market price of our stock could decline, and we could be subject to sanctions or investigations by regulatory authorities, which would require additional financial and management resources.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a result of disclosure of information, our business and financial condition are more visible, which we believe may result in threatened or actual litigation, including by competitors and other third parties. If such claims are successful, our business and operating results could be adversely affected. Even if the claims do not result in litigation or are resolved in our favor, these claims, and the time and resources necessary to resolve them, could divert the resources of our management and adversely affect our business and operating results.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Risk Related to Our Securities</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our stock price is volatile and there is a limited market for our shares.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The stock markets generally have experienced, and will probably continue to experience, extreme price and volume fluctuations that have affected the market price of the shares of many small-cap companies. These fluctuations have often been unrelated to the operating results of such companies and in recent times have been exasperated by investors&#8217; concerns stemming from the COVID-19 pandemic. Factors that may affect the volatility of our stock price include the following:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">22</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">anticipated or actual fluctuations in our quarterly or annual operating results;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">our success, or lack of success, in developing and marketing our products and services;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">changes in general economic, political and market conditions in or any of the regions in which we conduct our business, including as a result of the COVID-19 pandemic and related governmental responses;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">changes in financial estimates by us or of securities or industry analysts;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the issuance of new or updated research reports by securities or industry analysts</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the announcement of new products, services, or technological innovations by us or our competitors;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the announcement of new customers, partners or suppliers;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the ability to collect our outstanding accounts receivable;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">changes in our executive leadership;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">regulatory developments in our industry affecting us, our customers or our competitors;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">competition;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">actual or purported &#8220;short squeeze&#8221; trading activity; and</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the sale or attempted sale of a large amount of common stock, including sales of common stock following exercises of outstanding warrants.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We do not intend to pay dividends for the foreseeable future.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have not paid dividends on our common stock since inception. The continued operation and expansion of our business will require substantial funding. Accordingly, we currently intend to retain earnings, if any, for use in the business and we do not anticipate that we will pay any cash dividends on shares of our common stock for the foreseeable future. Any determination to pay dividends in the future will be at the discretion of our Board and will depend upon results of operations, financial condition, contractual restrictions, restrictions imposed by applicable law and other factors our Board deems relevant. Investors seeking cash dividends should not purchase our common stock. Accordingly, realization of a gain on your investment will depend on the appreciation of the price of our common stock, which may never occur.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>We have a substantial number of options, warrants and convertible preferred stock outstanding, which could give rise to additional issuances of our common stock and potential dilution of ownership to existing shareholders.</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, we had outstanding options, warrants and convertible preferred stock to purchase approximately an aggregate of 3.3 million shares of our common stock at exercise prices ranging from $0.80 to $8.40 per share. Of these, approximately 413,000 represent shares underlying options with exercise prices ranging from $0.80 to $7.06 per share, approximately 2.8 million represent shares underlying warrants at exercise prices ranging from $0.80 to $8.40 per share and approximately 63,750 represent shares underlying our shares of convertible $0.01 preferred A stock. To the extent any holders of options, warrants or convertible preferred stock exercise the same, the issuance of shares of our common stock upon such exercise will result in dilution of ownership to existing shareholders.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The trading market for our common stock will rely in part on the research and reports that securities or industry analysts publish about us and our business. If one or more of the analysts who cover us downgrades our common stock or issues other unfavorable commentary or research the price of our common stock may decline. If one or more analysts ceases coverage of our company or fails to publish reports on us regularly, demand for our stock could decrease, which in turn could cause the trading price or trading volume of our common stock to decline and could result in the loss of all or part of your investment in us.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Substantial future sales of our common stock, or the perception in the public markets that these sales may occur, may depress our stock price.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our common stock is traded on the NASDAQ Capital Market (&#8220;Nasdaq&#8221;) and, despite certain increases of trading volume from time to time, there have been periods when our common stock could be considered thinly traded, meaning that the number of persons interested in purchasing our common stock at or near bid prices at any given time may be relatively small. Equity or equity-related financing transactions that result in a large amount of newly issued shares that become readily tradable, or sales of significant numbers of shares by current shareholders, have placed, and in the future could place, downward pressure on the trading price of our stock. In addition, during times of lower trading volume, a shareholder who desires to sell a large number of shares of common stock may need to sell the shares in increments over time to mitigate any adverse impact of the sales on the market price of our stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">If our shareholders sell, or the market perceives that our shareholders intend to sell, substantial amounts of our common stock in the public market, the market price of our common stock could fall. Sales of a substantial number of shares of our common stock may make it more difficult for us to sell equity or equity-related securities in the future at a time and price that we deem reasonable or appropriate. In the event that the price of our stock falls, we may become involved in securities class action litigation that could divert management&#8217;s attention and harm our business.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">23</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In the future, we may also issue our securities if we need to raise additional capital or in connection with acquisitions. The number of shares of our common stock issued in connection with a financing or acquisition could constitute a material portion of our then-outstanding shares of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We may not be able to maintain compliance with Nasdaq&#8217;s listing standards, which could limit shareholders&#8217; ability to trade our common stock.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a listed company on the Nasdaq, we are required to meet certain financial, public float, bid price and liquidity standards on an ongoing basis in order to continue the listing of our common stock. If we fail to meet these continued listing requirements, our common stock may be subject to delisting, which could materially impact the liquidity of our common stock making it more challenging to buy and sell shares of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We are a &#8220;smaller reporting company&#8221; under the U.S. federal securities laws, and the reduced reporting requirements applicable to smaller reporting companies could make our common stock less attractive to investors.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:29.75pt">We are a &#8220;smaller reporting company&#8221; under U.S. federal securities laws. For as long as we continue to be a smaller reporting company, we may take advantage of exemptions from various reporting requirements that are applicable to other public companies that are not smaller reporting companies. Investors may not find our common stock attractive because we may rely on these exemptions. If some investors find our common stock less attractive as a result, there may be a less active trading market for our common stock and our stock price may be more volatile.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our anti-takeover provisions could prevent or delay a change in control of our company, even if such change in control would be beneficial to our shareholders.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:29.75pt">Provisions of our articles of incorporation, as amended, and amended bylaws as well as provisions of Florida law could discourage, delay or prevent a merger, acquisition or other change in control of our company, even if such change in control would be beneficial to our shareholders. These include: maintaining authorized but unissued shares of our capital stock that could be issued by our Board to increase the number of outstanding shares and thwart a takeover attempt; no provision for the use of cumulative voting for the election of directors; maintaining a staggered board, limiting the speed at which our shareholders may replace our entire Board, and limiting the ability of our shareholders to call special meetings.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:29.75pt">In addition, Florida Business Corporation Act, or FBCA, &#167; 607.0902 generally provides that shares acquired in excess of certain specified thresholds, without first obtaining the approval of our Board, will not possess any voting rights unless such voting rights are approved by a majority of our disinterested shareholders. Additionally, FBCA &#167; 607.0901 requires that, subject to certain exceptions, any affiliated transaction with a shareholder that owns more than 15% of the voting shares of the corporation, referred to as an &#8220;interested shareholder,&#8221; receive the approval of either the corporation&#8217;s disinterested directors or a supermajority vote of disinterested shareholders, or, absent either such approval, that a statutory &#8220;fair price&#8221; be paid to the shareholders in the transaction. The shareholder vote requirement is in addition to any shareholder vote required under any other section of the FBCA or our articles of incorporation, as amended.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>The concentration of our common stock ownership with our executive officers, directors and affiliates will limit your ability to influence corporate matters.</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">Our executive officers, directors and owners of 5% or more of our outstanding common stock and their respective affiliates beneficially owned, in the aggregate approximately 22.6% of our outstanding common stock as of February 25, 2022. This percentage includes outstanding shares of common stock, convertible preferred stock, warrant and stock options that are vested and exercisable as of that date. These shareholders will therefore have significant influence over management and affairs and over all matters requiring shareholder approval, including the election of directors and significant corporate transactions, such as a merger or other sale of our company or our assets, for the foreseeable future. This concentrated control will limit our shareholders&#8217; ability to influence corporate matters and, as a result, we may take actions that our shareholders do not view as beneficial. This ownership could negatively affect the value of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em><strong>There can be no assurance that we will be able to regain and maintain compliance with continued listing standards of the Nasdaq Capital Market.</strong></em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">The Nasdaq Capital Market&#8217;s continued listing standards for our common stock require, among other things, that (i) we maintain a closing bid price for our common stock of at least $1.00, and (ii) we maintain: (A) stockholders&#8217; equity of $2.5 million; (B) market value of listed securities of $35 million; or (C) net income from continuing operations of $500,000 in the most recently completed fiscal year or in two of the last three most recently completed fiscal years. Any failures to satisfy any continued listing requirements could lead to the receipt of a deficiency notice from the Nasdaq and ultimately to a delisting from trading of our common stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">24</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On October 7, 2022, we received a deficiency letter notifying us that we had not maintained a closing bid price for our common stock of at least $1.00 for a 30-day period. In accordance with Nasdaq rules, we have been provided an initial period of 180 calendar days, or until April 5, 2023 (the &#8220;Compliance Date&#8221;), to regain compliance with the bid price requirement. If we do not regain compliance with the bid price requirement by the Compliance Date, we may be eligible for an additional 180 calendar day compliance period. If we do not regain compliance with the bid price requirement by April 5, 2023 and are not eligible for an additional compliance period at that time, our common stock will be subject to delisting from the Nasdaq Capital Market. We cannot be certain that we will be able to regain compliance and then maintain compliance with the minimum bid price and the other standards in order to maintain a listing of our common stock on the Nasdaq Capital Market.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">If our common stock were delisted from the Nasdaq Capital Market, among other things, this could result in a number of negative implications, including reduced liquidity in our common stock as a result of the loss of market efficiencies associated with Nasdaq and the loss of federal preemption of state securities laws as well as the potential loss of confidence by suppliers, customers and employees, institutional investor interest, fewer business development opportunities, greater difficulty in obtaining financing and breaches of certain contractual obligations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i1b">Item 1B. UNRESOLVED STAFF COMMENTS</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Not applicable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i2">Item 2. PROPERTIES</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our U.S. headquarters, a 9,000 square foot office space, is located at 8430 Spires Way, Frederick, MD 21701. The facility includes a warehouse, training room, quality control room, qualification laboratory, with its own drive-in custom iHP<sup style="vertical-align:super">&#8482; </sup>SteraMist<sup style="vertical-align:super">&#174;</sup> Complete Room System. The new warehouse is significantly larger than our previous headquarters, allowing TOMI to store its new product lines and stock a greater variety of inventory&#8211;quickly delivering a customer purchase. The training room is integrated with the newest technology to be able to present SteraMist<sup style="vertical-align:super">&#174;</sup> virtually around the world. As the company keeps up with the demand for SteraMist<sup style="vertical-align:super">&#174;</sup>, there is a dedicated quality control room to allow our service engineers to work on machines for quick and efficient service to our customers. The lease for our U.S. headquarters has a 10-year term and provides for annual rent of approximately $157,000.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i3">Item 3. LEGAL PROCEEDINGS</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We currently are not a party to any legal proceedings, the adverse outcome of which, in management&#8217;s opinion, individually or in the aggregate, would have a material adverse effect on our results of operations, financial position or cash flows.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="i4">Item 4. MINE SAFETY DISCLOSURES</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Not applicable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">25</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="p2">PART II</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i5">Item 5. MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED SHAREHOLDER MATTERS AND ISSUER PURCHASES OF EQUITY SECURITIES</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Market Information</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our common stock is currently listed on Nasdaq Capital Market under the symbol &#8220;TOMZ.&#8221;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Shareholders</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of March 7, 2023, there were 216 record holders of our common stock; however, we believe we have approximately 5,500 stockholders, including those held in street name. On March 7, 2023, the last reported sale price of our common stock on the Nasdaq was $0.64 per share.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Dividends</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have not paid and do not currently intend to pay cash dividends on our common stock in the foreseeable future. Our policy is to retain all earnings, if any, to provide funds for operation and expansion of our business. The declaration of dividends, if any, will be subject to the discretion of our Board, which may consider such factors as our results of operations, financial condition, capital needs and acquisition strategy, among others.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Recent Sales of Unregistered Securities</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">None.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Issuer Repurchases of Equity Securities </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">None.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>&#160;Equity Compensation Plan Information</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For information about our equity compensation plans and other related stockholder matters see Item 12 of Part III of this Annual Report on Form 10-K.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i6">Item 6. [Reserved]</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i7">Item 7. MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>The following discussion and analysis of our financial condition and results of operations relates to the years ended December 31, 2022 and 2021. This discussion and analysis should be read in conjunction with our financial statements and the notes to those financial statements that are included elsewhere in this report.</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Annual and Quarterly Highlights</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Business Update</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our 2022 calendar year delivered continued growth in revenue and sales pipeline as well as improved year over financial operating results. We ended our 2022 calendar year on a strong note as our fourth quarter sales represent our best standalone quarter we have reported since 2020.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Our recognized revenue and customer sales backlog for the year ended December 31, 2022, together, was approximately $10,362,000 which was comprised of recognized revenue of $8,338,000 and a customer sales backlog as of December 31, 2022, of approximately $2,024,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">For the year ended December 31, 2022, we received over $10,000,000 in sales orders from including key global fortune 500 customers which represents 22% growth when compared to our calendar 2021 year. The increase in sales orders is largely attributable to increased demand for our CES and mobile equipment orders primarily from our life science, commercial and food safety sectors. A key driver to our longer-term growth is the solid demand for our CES by referrals to the product line by hosting tours of current installed systems, continuing brand awareness via our domestic independent manufacturing sales representatives and growing the network of international partners.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">26</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Revenue for the three months ended December 31, 2022 and 2021 was $2,812,000 and $2,010,000, respectively, representing an increase of $802,000, or 40% compared to the same prior year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Our revenue for the fourth quarter of 2022, grew 60% sequentially over what we reported in the third quarter of 2022.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">The increase in sales was largely attributable to increased demand for our CES systems and our internal tech team ability execute and deliver the systems in the fourth quarter of 2022. In 2022, we also saw growth in our sales results our mobile equipment orders due to our expanded product line.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">With the current years increase in demand for our CES, we have seen our current sales orders and revenue pipeline increase when compared to the same period last year. The increase in customer sales orders has resulted in a customer sales backlog of approximately $2,024,000 as of December 31, 2022. Our customer orders or contracts for mobile equipment, CES systems and iHP services are subject to the delivery timelines requested by our customers which affect the timing of the related revenue recognition.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have secured several new orders for our iHP CES for which revenue will be recognized upon delivery for the remainder of 2023 and believe our sales pipeline will continue to grow. As we install CES units, we can expect to see the increase in solution sales as these units are contracted to be used at set regular schedules. For example, two of the installs currently being manufactured are expected to generate $250,000 in BIT Solution revenue annually starting at the end of 2023.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, our customer sales backlog was as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;border-right:#000000 1px solid;border-bottom:#000000 1px solid;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:14%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:35%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">As of December 31, 2022</p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:37%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Expected Revenue Recognition </p></td></tr><tr style="height:15px"><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:14%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:18%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Value of Contracts or Sales Orders </p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:17%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Cash Deposits </p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:18%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">For the Year Ending December 31, 2023</p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:19%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">For the Year Ending December 31, 2024</p></td></tr><tr style="height:15px"><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:14%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Customer Backlog </p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:18%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;$&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2,024,000</p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:17%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;$&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 700,000 </p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:18%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;$&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $2,024,000</p></td><td style="BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid;width:19%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;$&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; -&#160;&#160; </p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As the market shifts to fully automatic disinfection decontamination, TOMI continues to market and submit bids on CES projects and building the pipeline for these installations. Further, TOMI has expanded bandwidth to meet the demands for the product line and has not been significantly affected by the global supply chain issues.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The financial operating results for the year ended December 31, 2022, improved in comparison to the same prior year period primarily due to higher sales, improved gross profit margins which were up 1.5% and lower operating expenses which declined by 16%.&#160;&#160;Our loss from operations for the year ended December 31, 2022, improved by 41% when compared to the same prior year periods.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">Through December 31, 2022, we used approximately $1,234,000 in cash from operations, an approximate $2,590,000 improvement over the cash used in operations of $3,824,000 during the year ended December 31, 2021. The improved cash flow is primarily due to the lower reported loss and cash deposits we received in the current year in connection with deferred revenue. The deferred revenue is attributable to customer deposits which primarily represent down payments made by our customers for orders that will be recognized into revenue as the projects are completed and delivered.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">In evaluating sales related performance, management also analyzes our revenue recognized for GAAP purposes which is presented in our quarterly and annual statement of operations as well our sales orders we receive from customers during those same accounting periods.&#160; We define a &#8220;sales order&#8221; as a document we generate for our internal use in processing a customer order.&#160; Our sales orders essentially translate the format of the customer purchase orders we receive from our customers into the format used by us.&#160;&#160; We also evaluate our &#8220;customer sales backlog&#8221; which is defined as pending sales orders where revenue has not yet been recognized. Management believes analyzing the sales order and backlog metrics are useful in measuring our overall sales and business development performance as it gauges the overall volume of sales and business development activities.&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">27</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Business Highlights and Recent Events</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt"><em><strong>Revenues:</strong></em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Total revenue without &#8220;customer sales backlog&#8221; for the year ended December 31, 2022 and 2021, was $8,338,000 and $7,754,000, respectively, representing an increase of $584,000, or 8% compared to the same prior year period. The growth in our orders was due to increased demand for our mobile equipment and CES.&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">SteraMist product-based revenues for the year ended December 31, 2022 and 2021, were $6,864,000 and $6,179,000, representing an increase of $685,000 or 11% when compared to the same prior year period.&#160; SteraMist service-based revenues for the years ended December 31, 2022 and 2021, were $1,474,000 and $1,575,000, representing a decrease of $101,000 or 6% when compared to the same prior year period.&#160; The decline is due to the timing of certain service engagement that occurred in the current and prior year periods.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">As of December 31, 2022, our balance sheet has deferred revenue of $700,000 which represents down payments on future equipment and CES orders that are expected to be recognized into revenue in future accounting periods. Our customer sales backlog at December 31, 2022, was $2,024,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">For the three months ended December 31, 2022 and 2021, our recognized revenue was $2,812,000 and $2,010,000, respectively, representing an increase of $802,000, or 40% compared to the same prior year period. The increase was to higher CES, mobile equipment and SteraMist BIT solution revenue in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">We believe that we possess the best technologies in the world in the disinfection and decontamination space. This pandemic has provided us with the confidence to develop a clear strategy to develop and manufacture additional products to add to our portfolio. In addition, we continue to move our BIT technology as a standard in disinfection and decontamination globally. This should lead to increased market share, profitability, and capability strength. Our products are an environmentally friendly solution and process which address the concerns of sustainability. Customers are requesting and discussing the positive results of our product and the environmentally friendly results compared to the caustic results of other disinfectants.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">SteraMist has a long past with fighting pandemics and outbreaks and implementing SteraMist for emergency preparedness is vital. As coronavirus has taken the world by surprise, history has shown that other pandemics and viruses are deemed to follow. Using a proven and trusted disinfectant, SteraMist, for emergency outbreaks and daily for preventative maintenance will alleviate the threat of infections from spreading and stop a possible outbreak.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><strong><em>2022 Events:</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On January 12, 2022, we assisted the decontamination efforts of On Demand Pharmaceuticals, an innovative technology company transforming how medicines are made, by providing its SteraMist Environmental Systems for use at On Demand Pharmaceutical&#8217;s modular cleanroom.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On February 10, 2022, we announced that we received approximately $1.3 million of orders for our CES and have set installation dates for these systems. Two of the orders are from a Fortune 500 pharmaceuticals company and the other is from a leading research facility focused on immunology and infectious disease. These additional CES orders are timed nicely after the final commissioning of the CES reported in October 2021 and installed months later after announcement for Fresenius Kabi&#8217;s Portuguese affiliate Labesfal S.A. located in the heart of Portugal.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On March 8, 2022, we partnered with ARM EnerTech Associates, LLC, a U.S.-based engineering services &amp; custom control panel manufacturer, to further develop its SteraMist brand of products.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On March 10, 2022 we announced that we fulfilled an urgent shipment of multiple SteraPak units to its local distributor in Hong Kong, TOMIMIST Hong Kong. The units were deployed by a well-known real-estate conglomerate in Hong Kong for use in shopping malls, commercial and residential buildings, and numerous other business premises to effectively combat the massive outbreak of COVID-19 Omicron variant infections in the city.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As conferences and tradeshows reopened in 2022 to provide for companies to exhibit live, TOMI attended multiple shows across the country. In April, 2022, we attended RIA 2022 International Restoration Convention &amp; Industry Expo. This show provided insight on the future of restoration businesses regarding mergers and acquisitions and meetings with core entities to discuss SteraMist disinfection potential with large franchises.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">28</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On April 25, 2022, TOMI was exhibited at FDIC International, which is the largest fire and rescue conference. As first-time exhibitors, we gained knowledge on the EMS market and their need for disinfection. With concerns of corrosion, vehicle turnover time, and residues left behind by older technologies, SteraMist technology saw great interest as it does not corrode or damage equipment, leave residue, and quickly disinfects. This market eagerly awaits the release of the iHP SteraMist Transport System.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On May 19, 2022, Dr. Halden Shane presented at the H.C. Wainwright Investment Conference.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On May 20, 2022, we attended the INTERPHEX 2022 Technical Conference and exhibited three of our SteraMist mobile units. The INTERPHEX technical conference is designed to host and connect state-of-the-art market leaders in the pharmaceutical, biotechnology, and life sciences industries.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">On June 3, 2022, we announced that our SteraMist technology was included on the List Q for the use of its BIT solution to help fight the spread of rare or novel viruses such as Monkeypox virus, SARS-CoV-2 and its variants that causes COVID-19. TOMI was notified of EPA&#8217;s inclusion on June 2, 2022.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On August 4, 2022, we announced that we had received multiple purchase orders for TOMI&#8217;s iHP CES.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On August 10, 2022, we announced SteraMist disinfection continues to make advancements in the Food Safety Industry and presented our products at the International Association for Food Production Annual Meeting, where renowned food safety, academic, and governmental professionals attended. The Company demonstrated its SteraMist iHP cold plasma technology and how SteraMist preserves the shelf life of produce. A poster summarizing the fourth and latest published paper by the USDA was presented at the meeting, which stated that &#8220;H<sub style="vertical-align:sub">2</sub>O<sub style="vertical-align:sub">2 </sub>residues on the surface of tomato fruit decreased rapidly after the treatment.&#8221; Disinfecting food while leaving no residue on food is particularly important to maintain the quality and freshness of the product, and we believe that SteraMist, which uses H<sub style="vertical-align:sub">2</sub>O<sub style="vertical-align:sub">2 </sub>solutions, is capable of providing this important advantage.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On September 12-14, 2022, Dr. Halden Shane presented virtually at the H.C. Wainwright 24th Annual Global Investment Conference.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On September 27, 2022, we announced that a U.S. based multinational pharmaceutical company would be expanding the use of SteraMist decontamination products, advancing SteraMist as this pharmaceutical company&#8217;s decontamination standard.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On October 10, 2022, we announced purchase order for an iHP CES from Avid Bioservices, Inc. (Avid) for implementation in Avid&#8217;s new purpose-built viral vector development and manufacturing facility in Costa Mesa, California.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On October 18, 2022, we announced that SteraMist is to be utilized by a world-renowned influenza vaccine company that focuses on innovative research, transformative technologies, production, and distribution.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On October 20, 2022, we announced that the U.S. Department of Health and Human Services (HHS), the largest biomedical research agency in the world, has purchased SteraMist disinfection systems for its Africa-based Biosafety Level 3 Laboratory (BSL-3).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI anticipates attending multiple shows across the country in 2023. It is critical for TOMI to perform live demonstrations to showcase the difference between our SteraMist iHP technology and our competitors. TOMI looks forward to making a large impact with live demonstrations of SteraMist disinfection technology throughout our multiple divisions.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><strong><em>Research Studies:</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI continues to be active in the global market, using registrations to expand sales opportunities. Currently, TOMI is in the registration process for India, and renewal to meet new requirements in the Philippines. Both markets offer excellent potential due to interest in the TOMI suite of decontamination/disinfection solutions.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI is in the annual process of self-audit, where all SOPs are reviewed and updated as needed, and all compliments and complains and requests for changes/new equipment are evaluated.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">29</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI has successfully completed a second 24-month storage stability, this one to meet US EPA requirements (first one was for EU BPR submission and had different methods/requirements). With the patented 7.8% product, Binary Ionization Technology Solution is safe to ship by air and store under normal ambient conditions. The study will be submitted for EPA review, and expiration date extended going forward upon EPA approval.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The EPA has registered our 0.35% hydrogen peroxide product for the use in greenhouses, pre harvests and post harvests. TOMI is conducting internal studies with the 0.35% on common pathogens in the food safety market to enhance protocols.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We continue to pursue acceptance of the additional 1% hydrogen peroxide label with the EPA for direct food application. Due to the pandemic, there have been significant delays by U.S. regulatory agencies in approving new submissions, including TOMI's new 1% registration. While TOMI continues to pursue the market for these two EPA registrations, we have partnered and conducted other food safety trials which have shown success in the market.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Partner Indoor Environmental Solutions and Consultants, or IESC, LLC completed their Forensic Architectural &amp; Engineering Investigation and Decontamination Report with Kalera Indoor Farms. IESC is a state-of-the art indoor air and surface decontamination company dedicated to food and health safety. In addition to being a TSN service provider, IESC are distributor partners to iHP SteraMist technology. Kalera, a global leader in vertical community farms for greens and culinary herbs harvested on demand all year is highly motivated to have iHP SteraMist be their cleaning decontamination solution. The recently received report outlines decontamination protocols and calculated savings and estimated service and purchasing options for Kalera.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Recent SteraMist food safety customers and partners are conducting further studies to prove SteraMist in the industry. Soli Organic Inc., one of the nation&#8217;s largest commercial indoor organic growing companies, obtained multiple SteraMist systems to protect their controlled indoor growing food process from costly fungus, Botrytis. The combination of all SteraMist systems purchased will be used daily, on a continuous cycle, to disinfect everything from seed trays that the soil and plants sit in, and the plants themselves.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Additional studies have been conducted with Kalera that demonstrated the efficacy of SteraMist in a large-scale CEA vertical farm. Analysis concluded dramatic reduction in fungal growth, mold spores, and yield loss from environmental bio-loads, with notable efficacy against Alternaria, a species causing 20% yield loss in all annual vegetable production. Levels went from high/ medium to non-existent/nondetectable with the following spores: Alternaria (Ulocladium), Aspergillus/Penicillium, Acremonium++, and Botrytis.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">SteraMist is also working with a few partners in the cannabis industry. Enviro-Mist has been testing cannabis flower incubated with Aspergillus flavus, Aspergillus fumigatus, Aspergillus niger, Aspergillus terreus, Escherichia Coli, Shigella Spp, Salmonella, Staphylococcus aureus, yeasts and molds and subsequently treated using ionized Hydrogen Peroxide (iHP) to the dried material. Potency results of the cannabis plant were not affected, and no additional residual solvents were found. The process was successful in complete remediation of all microbial contaminants. Another partner TOMI is working with has proven SteraMist that has reduced microbial count on cannabis flower from 400cfu/g to non-detectable without affecting the level of THC. SteraMist continues to penetrate the market with additional studies and bringing on premier clients.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><strong><em>Product Development:</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our recent products developed and launched are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">After the release of the SteraPak, the TOMI technology team quickly began designing new SteraMist products, which include the Select Plus-a hybrid product consisting of the Company&#8217;s current Surface Select and Environment systems. The unit will provide enhanced flexibility by using a single applicator to decontaminate full-room to small-space volume while maintaining the size of the current Surface Select unit with more robust process controls. The iHP SteraMist Transport System has been designed for the transportation market, specifically ambulances. The iHP SteraMist Transport System is a timer based fogging system that can be installed semi-permanently or permanently and used for any transport and/or cargo vehicle. It will be an easy-to-use turn-key integration system. The implementation of this product and our patented non-corrosive iHP technology will certainly replace the number one competitor in this marketplace, which uses an extremely harsh chemical. We are currently testing prototypes for each of these two units which will be released before the end of 2022.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">30</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">All SteraMist systems will remain important to the marketplace as they are designed for specific needs and budgets. The Select Surface Unit performs most of the functionality that the Plus offers and is priced at a lower cost, although Select Plus will provide additional options that are appealing to certain customers, such as laboratory and pharmaceutical companies. The SteraPak is a more cost-effective product and designed for residential and commercial real estate including large buildings and public space, any area that needs quick consistent disinfection. There are many new and existing clients that are interested in the SteraPak due to the cost and mobility.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In the fourth quarter of 2022, TOMI launched its fourth generation SteraMist Environment System. The system will now be 24 volt, allowing for universal outlet usage and convert even more of the hydrogen peroxide BIT Solution to hydroxyl radicals thus lowering H<sub style="vertical-align:sub">2</sub>O<sub style="vertical-align:sub">2</sub> PPM levels allowing for faster turnaround time. In addition, the unit will have eight (8) outputs where four (4) are dedicated to our regular process of Injection, Dwell, and Aeration along with a light beacon status bar and four (4) are programmable to meet the customer needs for any external equipment they may desire to work with the system.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In third quarter of 2021, we expanded our SteraMist<sup style="vertical-align:super">&#174;</sup> BIT<sup style="vertical-align:super">&#8482; </sup>solution product line with a 32-ounce bottle for the SteraPak, and the introduction of a ten (10) liter and five (5) gallon bottle. These three new additions bring the BIT Solution product line to a total of five (5) options provided to our customers, which should also benefit our razor/razor-blade business model.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We expect these new products and service introductions will positively impact our net sales, cost of sales and operating expenses. The timing of product introductions can also impact the Company&#8217;s net sales to its indirect distribution channels as these channels are filled with new inventory following a product launch, and channel inventory of an older product often declines as the launch of a newer product approaches. Net sales can also be affected when consumers and distributors anticipate a product introduction domestically and internationally.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><strong><em>Supply Chain:</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">We have orders for supplies and materials that are required in our equipment and are prepared to continue the manufacturing of all our products. Further, TOMI has multiple suppliers, outsourced engineers, and software programmers to turn to for the manufacturing and installation of its SteraMist products to reduce the risks associated with the current supply chain environment.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Financial Operations Overview</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our financial position as of December 31, 2022 and 2021, respectively, was as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Total shareholders&#8217; equity</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,448,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">13,595,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Cash and cash equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,867,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,317,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Deferred Revenue </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">700,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Accounts receivable, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,772,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,965,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inventories</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,496,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,743,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Prepaid expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">338,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">344,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Vendor Deposits</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">447,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">289,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Other Receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">164,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">236,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Current liabilities &#8211; Excluding Deferred Revenue </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,591,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,810,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Long-term liabilities </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">761,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">861,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Working Capital</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,844,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,077,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">During the year ended December 31, 2022, our debt and liquidity positions were affected by the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Net cash used in operations of approximately $1,234,000.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Net cash used in investing activities $241,000.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">31</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Results of Operations for the Year Ended December 31, 2022 Compared to the Year Ended December 31, 2021</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended&#160;</strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Revenue, Net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross Profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,060,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,587,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">473,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Operating Expenses<sup style="vertical-align:super"> (1)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,942,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">9,511,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1,569,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (Loss) from Operations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,882,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(4,924,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,042,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Other Income (Expense)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">414,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(412,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for (benefit from) Income Taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">74,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,555,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Net Income (Loss) per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.10</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Net Income (Loss) per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.10</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Includes $653,000 and $0 in non-cash equity compensation expense for the years ended December 31, 2022 and 2021, respectively.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Sales</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">During the years ended December 31, 2022 and 2021, we had net revenue of approximately $8,338,000 and $7,754,000, respectively, representing an increase in revenue of approximately $584,000 or 8%.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As customers mature through the product and adoption cycle and our sales pipeline converts to revenue, we expect to generate more predictable sales quarter over quarter. Further, as the COVID-19 pandemic has subsided, we expect that the demand for our products and services will continue as we are building a team to address the post COVID-19 pandemic market opportunities.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Net Revenue</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,864,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,179,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">685,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,474,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,575,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(101,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">SteraMist product-based revenues for the years ended December 31, 2022 and 2021, were $6,864,000 and $6,179,000, representing an increase of $685,000 when compared to the same prior year period.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our service-based revenue for the years ended December 31, 2022 and 2021, was $1,474,000 and $1,575,000, respectively, representing a year over year decrease of $101,000.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Revenue by Geographic Region</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,261,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,403,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(142,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,077,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,351,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">726,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">32</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Our domestic revenue for the years ended December 31, 2022 and 2021, was $6,261,000 and $6,403,000, respectively, a decrease of $142,000 when compared to the same prior year period. Our recognized domestic revenue and domestic customer sales backlog for the year ended December 31, 2022, together, was approximately $8,285,000 which was comprised of recognized revenue of $6,261,000 and a customer sales backlog as of December 31, 2022, of approximately $2,024,000.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Internationally, our revenue for the years ended December 31, 2022 and 2021, was approximately $2,077,000 and $1,351,000, respectively, representing an of $726,000.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Cost of Sales</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cost of Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,278,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,167,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">111,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cost of sales was $3,278,000 and $3,167,000 for the years ended December 31, 2022 and 2021, respectively, an increase of $110,000, compared to the prior year. The primary reason for the increase in cost of sales is attributable to higher sales and revenue in the current year. Our gross profit as a percentage of sales for the years ended December 31, 2022 was 60.6% compared to 59.2% in the same prior period, respectively. The higher gross profit is attributable to the product mix in sales.&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Professional Fees</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Professional Fees </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">536,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">538,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Professional fees are comprised mainly of legal, accounting, and financial consulting fees.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Professional fees were $536,000 and $538,000 for the years ended December 31, 2022 and 2021, respectively, representing an increase of approximately $2,000 in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Depreciation and Amortization</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Depreciation and Amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">329,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">295,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Depreciation and amortization were approximately $329,000 and $295,000 for the years ended December 31, 2022 and 2021, respectively, representing an increase of $34,000, or 12%.&#160; The increase in depreciation expense is due to a higher amount of fixed assets being depreciated in the current year periods when compared to the same prior year period.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Selling Expenses</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Selling Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,867,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,674,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">193,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">33</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Selling expenses for the year ended December 31, 2022 were approximately $1,867,000, as compared to $1,674,000 for the year ended December 31, 2021, representing an increase of approximately $193,000, or 12%.&#160; The increase in selling expense is attributable to a higher sales commissions and increased tradeshow costs in the year period.&#160; We continue to invest and allocate resources into our sales, marketing and advertising initiatives and have increased efforts in the current year in order to further develop our brand recognition and grow our base of customers. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Research and Development</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Research and Development</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">352,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">573,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(221,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Research and development expenses for the year ended December 31, 2022 were approximately $352,000, as compared to $573,000 for the year ended December 31, 2021, representing a decrease of approximately $221,000, or 39%.&#160; The decrease in research and development expenses is attributable to product development charges in connection with our SteraPak we incurred in the prior year period which did not reoccur in the current year period and lower product development costs associated with current R&amp;D projects being performed internally.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Consulting Fees</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended&#160;</strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consulting Fees </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">215,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">327,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(112,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Consulting fees were $215,000 and $327,000 for the years ended December 31, 2022 and 2021, respectively, representing a decrease of $112,00, or 34%.&#160; The decrease is due to the timing of certain projects that occurred in the prior year that did not occur in the same current year period. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>General and Administrative Expense</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">General and Administrative </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,643,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,104,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,461,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">General and administrative expense includes salaries and payroll taxes, rent, insurance expense, utilities, office expense, product registration costs and bad debt expense.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">General and administrative expense was $4,643,000 and $6,104,000 for the years ended December 31, 2022 and 2021, respectively, a decrease&#160; of 1,461,000 in the current year period. The decrease in general and administrative expense is primarily attributable to lower payroll costs, insurance and bad debt expense. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Other Income and Expense</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gain Upon Debt Extinguishment </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">415,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(415,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest Income </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Income (Expense)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">415,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(413,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">34</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Gain upon debt extinguishment of $415,000 in connection with the forgiveness of a loan payable received under the Payroll Protection Program of the CARES Act.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Interest income was approximately $2,000 and $1,000 for the years ended December 31, 2022 and 2021, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Interest expense was $0 and $1,000 for the years ended December 31, 2022 and 2021, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Provision for Income Taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for Income Tax Expense (Benefit)&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">74,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Income tax benefit was $74,000 for the year ended December 31, 2021.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Liquidity and Capital Resources</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">As of December 31, 2022, we had cash and cash equivalents of approximately $3,867,000 and working capital of $8,844,000. Our principal capital requirements are to fund operations, invest in research and development and capital equipment, and the continued costs of compliance with public company reporting requirements. We have historically funded our operations through funds generated through operations and debt and equity financings. The sale of additional equity securities could result in dilution to our stockholders. The incurrence of indebtedness would result in increased debt service obligations and may include operating and financial covenants that would restrict our operations. We cannot be certain that any financing will be available in the amounts we need or on terms acceptable to us, if at all. We have no plans of incurring any debt or equity financing.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In September 2021, we sold 2,869,442 shares of common stock through a registered direct offering to certain institutional investors and issued warrants to purchase 1,434,721 shares of common stock in a concurrent private placement. We received net proceeds from the transaction of $4,581,651, after deducting the placement agent&#8217;s fees and other offering expenses. The Warrants are exercisable at an exercise price of $1.68 per share, are exercisable immediately upon issuance and have a term of exercise equal to five years from the date of issuance.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">For the year ended December 31, 2022 and 2021, we incurred losses from operations of ($2,882,000) and ($4,924,000), respectively. Cash used in operations for the year ended December 31, 2022 and 2021, was ($1,234,000) and ($3,824,000), respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">A breakdown of our statement of cash flows for the year ended December 31, 2022 and 2021 is provided below:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;For the Year Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Net Cash Used in Operating Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,234,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(3,824,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Net Cash Used in Investing Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(241,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(639,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Net Cash Provided By Financing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">25,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,582,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">35</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Operating Activities</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cash used in operating activities for the year ended December 31, 2022 and 2021 was $1,234,000 and $3,824,000, respectively. The decline was attributable to a lower current year loss and customer deposits as well as increased purchases of inventory in the prior year to replenish our levels.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Investing Activities</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cash used in investing activities for the years ended December 31, 2022 and 2021 was $241,000 and $639,000, respectively. The decrease is attributable to fixed assets purchased in the prior year and capitalized patent and trademark costs.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Financing Activities</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cash provided by financing activities for the years ended December 31, 2022 and 2021 was $25,000 and $4,582,000 respectively. The cash provided by financing activities declined as a result of the proceeds we received in connection with the sale of our common stock and warrants in the prior year period.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Liquidity</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our revenues can fluctuate due to the following factors, among others:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">ramp up and expansion of our internal sales force and manufacturer&#8217;s representatives;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">length of our sales cycle;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">global response to the outbreak of COVID-19 Pandemic and or other outbreaks;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">expansion into new territories and markets; and</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">timing of orders from distributors.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We could incur operating losses and an increase of costs related to the continuation of product and technology development, sales expense as we continue to grow our sales teams, inventory as we continue to ensure we have products needed and geographic presence, tooling capital expenditures as we ramp up and streamline our production and administrative activities including compliance with the Sarbanes-Oxley Act of 2002 Section 404.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Management has taken and will endeavor to continue to take a number of actions in order to improve our results of operations and the related cash flows generated from operations in order to strengthen our financial position, including the following items:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">expanding our label with the EPA to further our product registration internationally;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">continued expansion of our internal sales force and manufacturer representatives in an effort to drive global revenue in all verticals;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">continue research and development and add new products to our &#8220;Stera&#8221; product line;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">source alternative lower-cost suppliers;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">expansion of international distributors; and</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">continued growth in all of our verticals.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">During 2022 we experienced increased demand for our CES where we collect deposits upon the execution of the contract. The deposits we receive fund the production for the CES and improve our overall liquidity through the duration of the project. We believe our sales for our CES will continue to grow and improve our financial results from a liquidity perspective as well as improve our operating margins due to the higher recurring solution sales we see for our CES system.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, we maintained a customer sales backlog of $2,024,000 of which we anticipate will be recognized into revenue and will provide a boost to our cash generated from core operations in our 2023 calendar year. We believe our sales pipeline and the related deferred revenue will continue to grow in 2023 and improve our liquidity position during the next twelve months.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We expect that the cash we generate from our core operations will generally be sufficient to cover our future capital expenditures and to pay down our near-term debt obligations, although we may choose to seek alternative financing sources.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We believe that our existing balance of cash and cash equivalents and amounts expected to be provided by operations will provide us with sufficient financial resources to meet our cash requirements for operations, working capital and capital expenditures over the next twelve months.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">36</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Critical Accounting Estimates</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our discussion and analysis of our financial condition and results of operations is based upon our consolidated financial statements, which have been prepared in accordance with accounting principles generally accepted in the United States. The preparation of these financial statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues and expenses, and related disclosure of contingent assets and liabilities. The estimation process requires assumptions to be made about future events and conditions, and as such, is inherently subjective and uncertain. Actual results could differ materially from our estimates.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:50px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The SEC defines critical accounting estimates as those that are, in management&#8217;s view, most important to the portrayal of our financial condition and results of operations and most demanding of our judgment. We consider the following estimates to be critical to an understanding of our consolidated financial statements and the uncertainties associated with the complex judgments made by us that could impact our results of operations, financial position and cash flows.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Revenue Recognition</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606). We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to bringing about resale. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from customers.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Product revenue includes sales from our standard and customized equipment, solution and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="text-decoration:underline">Costs to Obtain a Contract with a Customer</span></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="text-decoration:underline">Contract Balances</span></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, and December 31, 2021 we did not have any unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="text-decoration:underline">Arrangements with Multiple Performance Obligations</span></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">37</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="text-decoration:underline">Significant Judgments</span></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Use of Estimates</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The preparation of consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to accounts receivable, inventory, fair values of financial instruments, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Fair Value Measurements</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of inputs, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:7%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our financial instruments include cash and cash equivalents, accounts receivable, accounts payable and accrued expenses. All these items were determined to be Level 1 fair value measurements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Cash and Cash Equivalents</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For purposes of the statement of cash flows, cash and cash equivalents includes cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be in excess of insured limits.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Accounts Receivable</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our accounts receivable are typically from credit worthy customers or, for certain international customers, are supported by pre-payments. For those customers to whom we extend credit, we perform periodic evaluations of them and maintain allowances for potential credit losses as deemed necessary. We have a policy of reserving for doubtful accounts based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be in doubt. Account balances deemed to be uncollectible are charged to the allowance after all means of collection have been exhausted and the potential for recovery is considered remote.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">38</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Inventories</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We expense costs to maintain certification to cost of goods sold as incurred.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable.</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Property and Equipment</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation for equipment, furniture and fixtures and vehicles commences once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the lives of the respective leases or service lives of the improvements, whichever is shorter.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Leases</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depends on classification as a finance or operating lease.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">We have also elected the practical expedient to not separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense when recognized.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Capitalized Software Development Costs</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In accordance with ASC 985-20 regarding the development of software to be sold, leased, or marketed we expense such costs as they are incurred until technological feasibility has been established, at and after which time those costs are capitalized until the product is available for general release to customers. The periodic expense for the amortization of capitalized software development costs will be included in cost of sales.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Accrued Warranties</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:40pt">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Income Taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">39</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Net Income (Loss) Per Share</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the treasury stock method and includes the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Equity Compensation Expense</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation&#8212;Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value and is recognized as expense over the requisite service period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On July 7, 2017, our shareholders approved the 2016 Equity Incentive Plan, or the 2016 Plan. The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 625,000 shares of common stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of common stock for numerous reasons, including, but not limited to, shares of common stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award; awards under the 2016 Plan are expressly conditioned upon such agreements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On December 30, 2020, we received shareholder approval to amend and restate the 2016 Equity Incentive Plan to increase the maximum number of shares of common stock authorized from issuance by 1,375,000, from 625,000 shares to 2,000,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Concentrations of Credit Risk</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Long-Lived Assets Including Acquired Intangible Assets</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the years ended December 31, 2022 and 2021.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Recent Accounting Pronouncements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In March 2022, the FASB issued ASU 2022-02, Troubled Debt Restructurings and Vintage Disclosures. This ASU eliminates the accounting guidance for troubled debt restructurings by creditors that have adopted ASU 2016-13, Measurement of Credit Losses on Financial Instruments, which we adopted on January 1, 2020. This ASU also enhances the disclosure requirements for certain loan refinancing and restructurings by creditors when a borrower is experiencing financial difficulty. In addition, the ASU amends the guidance on vintage disclosures to require entities to disclose current period gross write-offs by year of origination for financing receivables and net investments in leases within the scope of ASC 326-20. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU would be applied prospectively. Early adoption is also permitted, including adoption in an interim period. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">40</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In October 2021, the FASB issued ASU No. 2021-08, Accounting for Contract Assets and Contract Liabilities from Contracts with Customers (Topic 805). This ASU requires an acquirer in a business combination to recognize and measure contract assets and contract liabilities (deferred revenue) from acquired contracts using the revenue recognition guidance in Topic 606. At the acquisition date, the acquirer applies the revenue model as if it had originated the acquired contracts. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU should be applied prospectively. Early adoption is also permitted, including adoption in an interim period. If early adopted, the amendments are applied retrospectively to all business combinations for which the acquisition date occurred during the fiscal year of adoption. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently adopted accounting pronouncements</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In November 2021, the FASB issued ASU No. 2021-10, Government Assistance (Topic 832). This ASU requires business entities to disclose information about government assistance they receive if the transactions were accounted for by analogy to either a grant or a contribution accounting model. The disclosure requirements include the nature of the transaction and the related accounting policy used, the line items on the balance sheets and statements of operations that are affected and the amounts applicable to each financial statement line item and the significant terms and conditions of the transactions. The ASU is effective for annual periods beginning after December 15, 2021. We adopted ASU 2021-10 starting in 2022, which did not have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Item 7A. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Not applicable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i8">Item 8. Financial STATEMENTS AND SUPPLEMENTARY DATA</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The financial statements required by this item are included in Part IV, Item 15 of this Annual Report on Form 10-K, beginning on page F-1, and are incorporated by reference herein.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i9">Item 9. Changes in and Disagreements With Accountants on Accounting and Financial Disclosure</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">See disclosures set forth in Item 14 below regarding change of independent registered public accounting firm and such disclosures are incorporated herein by reference to this Item 9.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="i9a">Item 9A. Controls and Procedures</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Evaluation of Disclosure Controls and Procedures</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our management conducted an evaluation of the effectiveness of our disclosure controls and procedures (as is defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act) as of the end of the period covered by this Annual Report on Form 10-K. Our disclosure controls and procedures are intended to ensure that the information we are required to disclose in the reports that we file or submit under the Exchange Act is (i) recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms and (ii) accumulated and communicated to our management, including the Principal Executive Officer and Principal Financial Officer, to allow timely decisions regarding required disclosures.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Based on that evaluation, our Principal Executive Officer and Principal Financial Officer have concluded that, as of the end of the period covered by this Annual Report, our disclosure controls and procedures were effective. Our management has concluded that the financial statements included in this Annual Report on Form 10-K present fairly, in all material respects, our financial position, results of operations and cash flows for the periods presented in conformity with generally accepted accounting principles.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">41</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our disclosure controls and procedures are designed to provide reasonable assurance of achieving the desired control objectives. Our management recognizes that any control system, no matter how well designed and operated, is based upon certain judgments and assumptions and cannot provide absolute assurance that its objectives will be met. In addition, the design of disclosure controls and procedures must reflect the fact that there are resource constraints and that management is required to apply judgment in evaluating the benefits of possible controls and procedures relative to their costs. Similarly, an evaluation of controls cannot provide absolute assurance that misstatements due to error or fraud will not occur or that all control issues and instances of fraud, if any, have been detected.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Management&#8217;s Annual Report on Internal Control Over Financial Reporting</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Management is responsible for establishing and maintaining adequate internal control over our financial reporting (as defined in Rule 13a-15(f) and 15d-15(f) under the Exchange Act). Internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with accounting principles generally accepted in the United States.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our internal control over financial reporting includes those policies and procedures that (i) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of our assets, (ii) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with accounting principles generally accepted in the United States of America, and that our receipts and expenditures are being made only in accordance with authorizations of our management and directors, and (iii) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use or disposition of our assets that could have a material effect on the financial statements. Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, 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.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our management conducted an evaluation of the effectiveness of our internal control over financial reporting based on the framework in Internal Control<em>&#8212;</em>Integrated Framework issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on this evaluation, our management concluded that, as of the end of the period covered by this Annual Report on Form 10-K, our internal control over financial reporting was not effective as a result of the material weakness described below. Our internal control over financial reporting was not subject to attestation by our independent registered public accounting firm as we are not an accelerated filer, nor a large accelerated filer.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Remediation of Prior Year Material Weakness</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The material weakness that was previously disclosed as of December 31, 2021 was remediated as of December 31, 2022. See Management&#8217;s Report on Internal Control over Financial Reporting above. As disclosed in the quarterly reports on Form 10-Q for the first three quarters of 2022, the Company has implemented and executed the Company&#8217;s remediation plans, and as of December 31, 2022, such remediation plans were successfully tested and the material weakness was deemed remediated.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Changes in Internal Control Over Financial Reporting</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We previously disclosed material weaknesses in our internal control over financial reporting related to the matter discussed above.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We took actions to remediate the material weaknesses relating to our internal controls over financial reporting, as described below. The remedial activities we took included weekly meetings with the financial team to review any issues arising from accounts receivable, implementation of a new policy for the identification, authorization, approval, accounting for, and the disclosure of bad debt reserves. The new policy no longer primarily relies on management&#8217;s view of customer relationships, rather it provides supporting controls around management&#8217;s view collectability of receivables and better segregates the duties to support the identification, authorization, approval, accounting for, and the disclosure of bad debt reserves.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a result of the remediation activities and controls in place as of December 31, 2022, described above, we have remediated the previously disclosed material weaknesses. However, completion of remediation does not provide assurance that our remediated controls will continue to operate properly or that our financial statements will be free from error. There may be undetected material weaknesses in our internal control over financial reporting, as a result of which we may not detect financial statement errors on a timely basis. Moreover, in the future we may implement new offerings and engage in business transactions, such as acquisitions, reorganizations or implementation of new information systems, that could require us to develop and implement new controls and could negatively affect our internal control over financial reporting and result in material weaknesses.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">42</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We continue to develop our internal controls, processes and reporting systems in an effort to maintain the effectiveness of our internal control over financial reporting, and we expect to incur ongoing costs in this effort. However, we may not be successful in developing and maintaining adequate internal controls, which may undermine our ability to provide accurate, timely and reliable reports on our financial and operating results.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">There were no additional changes in our internal control over financial reporting that occurred during the period covered by this Annual Report on Form 10-K that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="i9b">Item 9B. Other Information</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">None.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Item 9C. DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Not applicable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">43</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="p3">PART III</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="i10">Item 10. Directors, Executive Officers and Corporate Governance</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our directors and executive officers and their ages and positions as of March 7, 2023 are presented below.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:20%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Name</strong></p></td><td style="width:2%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;</strong></p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:15%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Age</strong></p></td><td style="width:2%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;</strong></p></td><td style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Position</strong></p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Halden S. Shane</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">78</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Executive Officer and Chairman of the Board</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Elissa J. Shane</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">43</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Operating Officer and Director </p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Nick Jennings</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">45</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Financial Officer</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Walter C. Johnsen</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">72</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Director</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Kelly J. Anderson</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">55</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Director</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Lim Boh Soon</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">67</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Director</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>Halden S. Shane</em>: Dr. Shane has been our Chief Executive Officer and Chairman of the Board since October 15, 2007, when we commenced our current operations. Dr. Shane also served as President and CEO of Tiger Management International, a private management company that deals in business management of private and public companies. Dr. Shane resigned all positions and closed Tiger Management International in 2009. Dr. Shane was founder and CEO of Integrated Healthcare Alliance, Inc. and also founder and General Partner of Doctors Hospital West Covina, California. Prior thereto, Dr. Shane practiced Podiatric Surgery specializing in ankle arthroscopy.&#160;Dr. Shane received his Bachelor of Science degree from the University of Miami in 1969, his Bachelor of Medical Science degree from California College of Podiatric Medicine in 1971, and his Doctor of Podiatric Medicine Degree from the California College of Podiatric Medicine in 1973. He is Board Certified by the American Board of Podiatric Surgery, American Board of Orthopedics, and the American Board of Quality Assurance and Review.&#160;Dr. Shane&#8217;s extensive expertise and business experience in the medical and finance industry, as well as his knowledge of our day-to-day operations and strategic initiatives provide our Board of Directors with valuable insights and in-depth understanding of our Company.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>Elissa J. Shane</em>: Ms. Shane has been our Chief Operating Officer since January 2018. On July 30, 2021, at the recommendation of the Nominating and Governance Committee, the Board appointed Ms. Elissa J. Shane to serve as a member of the Board. Previously, she served as our Chief Regulatory and Compliance Officer from September 2015 to December 2017 and as our Corporate Secretary in 2016. From January 2014 to September 2015, Ms. Shane served as a paralegal with Levi Lubarsky Feigenbaum &amp; Weiss LLP, where she worked with the firm&#8217;s managing partners and staff attorneys and directed all operational aspects of the litigation cycle from inception through appeal. From September 2009 to January 2014, she served as a paralegal with Olshan Frome Wolosky LLP, where she managed all regulatory and compliance issues, litigation procedures and advertising and promotional matters. Ms. Shane received a B.A. in Psychology and Communications with a minor in Economics from the University of Southern California in 2001. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>Nick Jennings</em>: Mr. Jennings has been our Chief Financial Officer since October 2014. From July 2014 until his employment by the Company, Mr. Jennings was self-employed and provided consulting, accounting and tax compliance services to private-owned companies. From November 2006 until June 2014, Mr. Jennings was a senior manager at Richardson Kontogouris Emerson LLP, where he worked with various public and private companies providing services in a variety of business areas including tax compliance, tax consulting, general accounting, and business assurance. He is a graduate of Loyola Marymount College with a degree in accounting and is a member of the American Institute of Certified Public Accountants.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">44</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>Walter C. Johnsen</em>:<strong> </strong>Mr. Johnsen has been one of our directors since January 29, 2016. Since January 1, 2007, Mr. Johnsen has served as Chairman of the Board and Chief Executive Officer of Acme United Corporation, a leading worldwide supplier of innovative branded cutting, measuring and safety products in the school, home, office, hardware &amp; industrial markets. From November 30, 1995 to December 31, 2006, he held the titles of President and Chief Executive Officer at Acme United. Mr. Johnsen previously served as Vice Chairman and a principal of Marshall Products, Inc., a medical supply distributor. Mr. Johnsen holds a Bachelor of Science in Chemical Engineering and a Master of Science in Chemical Engineering from Cornell University, and a Master of Business Administration from Columbia University. The Board concluded that Mr. Johnsen&#8217;s business and operations experience allows him to serve as one of our directors.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>Kelly J. Anderson</em>:<strong> </strong>Ms. Anderson has been one of our directors since January 29, 2016. Ms. Anderson is the Chief Executive Officer of CXO Executive Solutions, LLC, a provider of executive services. Between 2015 and July 2020, Ms. Anderson served a partner in C Suite Financial Partners, a financial consulting services company dedicated to serving private, public, private equity, entrepreneurial, family office and government-owned firms in all industries. Ms. Anderson is an inactive California CPA and a 1989 graduate of the College of Business and Economics at California State University, Fullerton. The Board concluded that Ms. Anderson&#8217;s experience in finance qualifies her to serve as one of our directors.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;<em>Dr. Lim Boh Soon:&#160; </em>Dr. Lim Boh Soon:&#160; Dr. Lim has served as a member of the Board since January 2018. Dr. Lim has more than 26 years of experience in the banking and finance industry. For more than the past five years, he has been a fellow of the Singapore Institute of Directors and is currently an independent non-executive director on the board of three publicly listed companies, with two on the Singapore Stock Exchange and one on the Bursa Malaysia Stock Exchange. Dr. Lim has served in various directorship roles throughout the past including with CSE Global Limited until April 2017, Across Asia Limited (Cayman Islands) until August 2017, and OUE Commercial REIT Management Private Limited until September 2019. In addition to his role with Tomi Environmental Solutions Inc., Dr. Lim holds current directorship positions with the following companies, Arise Asset Management Pte, Ltd., OUE Limited, Jumbo Group Limited, TPT Corporation (Cayman Islands), Asri Asset Management Pte. Ltd., EpicQuant Pte. Ltd. and Kairos Asia Outreach. Further, Dr. Lim has worked in various senior management positions for several regional and multi-national organizations, including UBS Capital Asia Pacific Limited, The NatSteel Group, Rothschild Ventures Asia Limited and The Singapore Technologies Group. Dr. Lim was also a member of the Regional Investment Committee for UBS AG in Asia. Dr. Lim graduated with a First-Class Honors in Mechanical Engineering from The University of Strathclyde in the United Kingdom (formerly The Royal College of Science &amp; Technology) in 1981 and obtained his Doctor of Philosophy in Mechanical Engineering from The University of Strathclyde in the United Kingdom in 1985. We believe that Dr. Lim&#8217;s experience as a director of public companies and in the finance industry qualifies him to serve on the Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Family Relationships</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Ms. Elissa J. Shane, our Chief Operating Officer and Director, is the daughter of Dr. Halden Shane, our Chief Executive Officer and Chairman of the Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Board Composition</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The Board currently consists of five directors divided into three classes, with each class holding office for a three-year term. Each director serves until his or her successor is duly elected and qualified, or until his or her earlier resignation or removal. Our Board is responsible for the business and affairs of our Company and considers various matters that require its approval. Our executive officers are appointed by our Board and serve at its discretion.&#160; Each member of the Board attended at least 75% of the total meetings held by the Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><strong>Audit Committee</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our Audit Committee was established in June 2009 and currently is comprised of Ms. Anderson, Mr. Johnsen and Dr. Lim. Ms. Anderson serves as chairperson of the Audit Committee. The Board has determined that Ms. Anderson qualifies as an audit committee financial expert within the meaning of SEC regulations and meets Nasdaq&#8217;s financial sophistication requirements. In making this determination, the Board has considered Ms. Anderson&#8217;s extensive financial experience and business background.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">45</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The Audit Committee operates under a written charter, which is available at http://investor.tomimist.com/corporate-governance/audit-committee-charter. The purpose of the Audit Committee is to assist the Board in monitoring the integrity of the annual, quarterly and other financial statements of the Company, the independent auditor&#8217;s qualifications and independence, the performance of the Company&#8217;s independent auditors and the compliance by the Company with legal and regulatory requirements. The Audit Committee also reviews and approves all related-party transactions. Our Board has determined that Ms. Anderson is an &#8220;audit committee financial expert&#8221; as defined by the regulations promulgated by the SEC.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Code of Ethics</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The Board adopted a Code of Ethics in 2008 that applies to, among other persons, Board members, officers (including our Chief Executive Officer), contractors, consultants and advisors. Our Code of Ethics, which is available at http://investor.tomimist.com/TOMZ/code_of_ethics/2139, sets forth written standards designed to deter wrongdoing and to promote:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">1.</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">honest and ethical conduct including the ethical handling of actual or apparent conflicts of interest between personal and professional relationships;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">2.</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">full, fair, accurate, timely and understandable disclosure in reports and documents that we file with or submit to the SEC and in other public communications made by us;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">3.</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">compliance with applicable governmental laws, rules and regulations;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">4.</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">the prompt internal reporting of violations of the Code of Ethics to an appropriate person or persons identified in the Code of Ethics; and</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">5.</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">accountability for adherence to the Code of Ethics.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i11">Item 11. Executive Compensation</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Summary</strong><em> </em><strong>Compensation Table</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table sets forth the total compensation paid to or earned by our named executive officers for the years ended December 31, 2022 and 2021, respectively:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name and Principal&#160;Position</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Year</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Salary</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Bonus</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Stock</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($) (1)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Option/</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Warrant</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($) (1)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>All Other</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Compensation</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Halden S. Shane</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2022</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">550,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">178,281</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">9,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">737,281</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Chairman and CEO (2)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">500,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">50,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(6)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">314,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(3)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">864,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Elissa J. Shane (4)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2022</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">297,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">59,427</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">13,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(4)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">372,413</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">COO</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">270,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(6)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">13,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(4)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">313,510</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Nick Jennings (5)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2022</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">192,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">41,340</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">233,840</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">CFO</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">175,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">20,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(6)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">195,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">46</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(1)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The amounts shown in this column represent the aggregate grant date fair value of stock, option and/or warrant award, as applicable, granted during the year computed in accordance with FASB ASC Topic 718. See Note 2 of the notes to our audited consolidated financial statements contained in this Annual Report on Form 10-K for a discussion of valuation assumptions made in determining the grant date fair value of the awards.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(2)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">During the year ended December 31, 2022, we issued an option to purchase 172,500 shares of common stock to our Chief Executive Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $178,281 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03. Please refer to Item 11 Employment Agreements for additional details of Dr. Shane&#8217;s annual compensation.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(3)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">On February 11, 2021, we agreed to amend (the &#8220;Warrant Amendment&#8221;) the warrant to purchase 125,000 shares of common stock, par value $0.01 (the &#8220;Common Stock&#8221;), issued to Dr. Halden S. Shane on February 11, 2014 (the &#8220;Warrant&#8221;), to provide us with an option to repurchase the Warrant from Dr. Shane at a negotiated price. In connection with the Warrant Amendment, we repurchased the warrant from Dr. Shane (the &#8220;Repurchase&#8221;) for an aggregate cash consideration of $314,500, representing a 15% discount of the net exercise cash value of the Warrant, which was calculated using the closing price of the Common Stock on the Nasdaq on February 11, 2021 of $5.36, less the exercise price of the warrants in the amount of $2.40. The Warrant Amendment and the Repurchase was considered, approved and adopted by a disinterested majority of Our board of directors. The $314,500 is included as other compensation.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(4)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">During the year ended December 31, 2022, we issued an option to purchase 57,500 shares of common stock to our Chief Operating Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $59,427 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03. The other compensation in the amount of $13,500 represents an auto allowance pursuant to Ms. Shane&#8217;s employment agreement. Please refer to Item 11 Employment Agreements for additional details of Ms. Shane&#8217;s annual compensation.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(5)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">During the year ended December 31, 2022, 2022 we issued an option to purchase 40,000 shares of common stock to our Chief Financial Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $41,340 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03. Please refer to Item 11 Employment Agreement for additional details of Mr. Jennings&#8217; annual compensation.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(6)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">In January 2022, the compensation committee approved cash bonuses to the COO and CFO which were paid in January 2022. The cash bonuses were accrued for as of December 31, 2021.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">47</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Outstanding Equity Awards at 2022 Fiscal Year-End</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table sets forth certain information with respect to outstanding options and warrants to purchase common stock previously awarded to our named executive officers as of December 31, 2022.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#ffffff"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Securities</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Underlying</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unexercised</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Warrants&#160;/</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable<sup style="vertical-align:super">(1)</sup></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(#)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Securities</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Underlying</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unexercised</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Warrants&#160;/</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unexercisable</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(#)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Incentive</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Plan</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Awards:</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Securities</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Underlying</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unexercised</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unearned</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Warrants</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(#)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Price<sup style="vertical-align:super">(1)</sup></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Expiration</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Date</strong></p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Halden S. Shane</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">156,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(2)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.20</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/31/2025</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(3)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4.00</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4/24/2030</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">375,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(4)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6.95</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10/01/2030</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">172,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(5)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.12</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/1/2032</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">437,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(6)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.96</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">12/22/2032</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(7)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.64</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">11/19/2033</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">125,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(8)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.80</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/26/2034</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Elissa J. Shane</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(9)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.96</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/5/2023</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(10)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.88</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/03/2024</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(11)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.96</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/03/2025</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">18,750</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(12)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.80</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/15/2025</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(13)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4.00</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4/24/2030</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(14)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7.06</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10/1/2025</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">57,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(15)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.12</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/18/2032</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Nick Jennings</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(16)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.80</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/26/2023</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(17)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4.00</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4/24/2030</p></td><td style="width:1%;">&#160;</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">40,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(18)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.12</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/18/2032</p></td><td style="width:1%;">&#160;</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reflects the 1-for-8 reverse stock split of our Common Stock and Series A Preferred Stock effected on September 10, 2020.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(2)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on January 31, 2020 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(3)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants April 24, 2020 and have a term of ten years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(4)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on October 01, 2020 and have a term of ten years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(5)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options vested on January 18, 2022 and have a term of ten years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(6)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on December 22, 2017 and were modified to expire on December 22, 2032</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(7)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on November 19, 2018 and were modified to expire on November 19, 2032.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(8)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on January 26, 2019 and where modified to expire on January 26, 2034.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(9)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options pursuant to the 2016 Plan vested on January 5, 2018 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(10)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options pursuant to the 2016 Plan vested on January 3, 2019 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(11)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options pursuant to the 2016 Plan vested on January 3, 2020 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(12)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options pursuant to the 2016 Plan vested on January 15, 2020 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(13)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on April 24, 2020 and have a term of ten years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(14)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options pursuant to the 2016 Plan vested on October 01, 2020 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(15)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options vested on January 18, 2022 and have a term of ten years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(15)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options pursuant to the 2016 Plan vested on January 26, 2018 and have a term of five years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(16)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants vested on April 24, 2020 and have a term of ten years.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(17)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options vested on January 18, 2022 and have a term of ten years.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Employment Agreements, Termination of Employment and Change-in-Control Arrangements</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Except as described below, we currently have no employment agreements with any of our executive officers, nor any compensatory plans or arrangements resulting from the resignation, retirement or any other termination of any of our executive officers, from a change-in-control, or from a change in any executive officer&#8217;s responsibilities following a change-in-control.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Employment Agreements</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have entered into employment agreements with each of the named executive officers and generally include the named executive officer&#8217;s initial base salary and an indication of equity compensation opportunities.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">48</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em><span style="text-decoration:underline">Halden S. Shane</span></em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On September 22, 2020, we entered into&#160;a three year employment agreement with Dr. Shane, effective October 1, 2020.&#160;The agreement provides for a base annual salary of $500,000.&#160;The agreement also provides for a signing bonus of 375,000 warrants. Dr. Shane is also entitled to a cash performance bonus and an annual issuance of an option to purchase 31,250 shares of common stock from the 2016 Plan at the discretion of the Board. The agreement also provides that we will reimburse Dr. Shane for the expenses associated with the use of an automobile up to $750 a month. The term of the agreement is three years.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In the event Dr. Shane is terminated as CEO as a result of a change in control, Dr. Shane will be entitled to a lump sum payment of two years&#8217; salary at the time of such termination.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em><span style="text-decoration:underline">Elissa J. Shane</span></em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On October 1, 2020, we entered into&#160;an employment agreement with Elissa J. Shane, effective October 1, 2020. Pursuant to her employment agreement, Ms. Shane will receive an annual base salary of at least $270,000, subject to annual review and discretionary increase by the Compensation Committee of the Board. Ms. Shane is eligible to receive an annual cash bonus and other annual incentive compensation. The agreement originally provided for a grant of 93,750 warrants. Additionally, in connection with the execution of&#160;her employment agreement, on October 1, 2020, we issued Ms. Shane a warrant to purchase 93,750 shares of&#160;Common Stock at an exercise price of $6.17 per share. These provisions were subsequently amended to provide for the issuance to Ms. Shane of 31,250 options from the 2016 Equity Plan at the closing price of $7.06 on the date of grant in lieu of the warrant grant and the 93,750 warrants were cancelled. Ms. Shane acknowledged that the 31,250 options were in full consideration of the amount she was entitled to under the agreement. Her employment agreement also provides that&#160;we will reimburse Ms. Shane for reasonable and necessary business and entertainment expenses that she incurs in performing her duties. During the term of her employment, Ms. Shane will also be entitled to up to four weeks of paid vacation time annually, which will accrue up to six weeks, and to participate in&#160;our benefit plans and programs, including but not limited to all group health, life, disability and retirement plans. Ms. Shane is also entitled to the sum of $1,000 per month as a vehicle allowance. The initial term of&#160;her employment agreement is three years, which may be automatically extended for successive one-year terms, unless either party provides the other with 120 days&#8217; prior written notice of its intent to terminate the&#160;agreement.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In the event Ms. Shane is terminated as COO as a result of a change in control, Ms. Shane will be entitled to a lump sum payment of one and a half years&#8217; salary at the time of such termination.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em><span style="text-decoration:underline">Nick Jennings</span></em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On September 2, 2015, we entered into a new employment agreement with Mr. Jennings, which superseded his prior agreement, pursuant to which he continues to serve as our Chief Financial Officer. Mr. Jennings&#8217; annual salary is $132,000, which is reviewed annually. On January 26, 2016, we issued Mr. Jennings a five-year warrant to purchase up to 12,500 shares of common stock at an exercise price of $4.40 per share. The agreement also provided for the issuance of an additional five-year warrant to purchase 12,500 shares of common stock in 2016, however, this provision was modified to grant a salary increase in lieu of the options. In October 2020, Mr. Jennings&#8217; annual salary was increased to $175,000 per year. Mr. Jennings is also entitled to additional equity compensation based upon superior performance of his responsibilities, as determined by the Board in its sole discretion. The agreement also provides that we will reimburse Mr. Jennings for certain business and entertainment expenses. In the event of a change in control of the Company that results in his termination, Mr. Jennings will be entitled to a lump sum payment of one year&#8217;s salary and all equity awards will be accelerated and fully vested. In the event his employment is terminated other than for cause, Mr. Jennings will receive an amount equal to his annual salary as of such termination date after the second employment anniversary.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">49</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Director Compensation</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Each of our non-employee directors receives cash fees and stock as compensation for their service on the Board and the committees of the Board on which they are a member. The tables below set forth cash and stock compensation earned by each non-employee director during the fiscal year ended December 31, 2022.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Fees&#160;earned or</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>paid in cash</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Stock awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Option awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Other</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Compensation</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>($)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Walter Johnsen (1)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">44,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">18,113</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">62,113</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Kelly Anderson (2)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">50,600</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">18,113</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,713</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Lim Boh Soon (3)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">44,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">18,113</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">62,113</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">(1) Mr. Johnsen was elected to the Board on January 29, 2016. The term of his agreement as director commenced on February 1, 2016 for up to two years and until a successor is elected, or resignation or removal. Mr. Johnsen was re-elected to the board for a 3-year term at our 2019 annual meeting. Our agreement with Mr. Johnsen provides for an annual fee in the amount of $44,000 paid on a quarterly basis and an annual grant of shares of common stock. In January 2022, we issued Mr. Johnsen 17,250 shares of common stock that were valued at $18,113.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">(2) Ms. Anderson was elected to the Board on January 29, 2016 and serves as the chairperson of our Audit Committee. The term of her agreement as director commenced on February 1, 2016 for up to two years and until a successor is elected, or resignation or removal. Ms. Anderson was re-elected to the board for a 3-year term at our 2019 annual meeting. Our agreement with Ms. Anderson provides for an annual fee in the amount of $50,600 paid on a quarterly basis and an annual grant of shares of common stock. In January 2022, we issued Ms. Anderson 17,250 shares of common stock that were valued at $18,113.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">(3) Mr. Lim was elected to the Board on January 29, 2018. The term of his agreement as director commenced on February 1, 2018 for up to three years unless re-elected or until a successor is elected, or resignation or removal. Mr. Lim was re-elected to the board for a 3-year term at our 2021 annual meeting. Our agreement with Mr. Lim provides for an annual fee in the amount of $44,000 paid on a quarterly basis and an annual grant of shares of common stock. In January 2022, we issued Mr. Lim 17,250 shares of common stock that were valued at $18,113.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">50</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i12">Item 12. Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Equity Compensation Plan Information</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We currently maintain one compensation plan: the 2016 Plan. The 2016 Plan was approved by the Board on January 29, 2016 and received shareholder approval on July 7, 2017. The 2016 Plan authorized the issuance of 625,000 shares of common stock. On August 25, 2015, the Board terminated the 2008 Plan, which we had maintained previously and which our shareholders had approved. Accordingly, we will issue future awards under the 2016 Plan.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On December 30, 2020, we received shareholder approval to amend and restate the 2016 Equity Incentive Plan to increase the maximum number of shares of common stock authorized from issuance by 1,375,000, from 625,000 shares to 2,000,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table provides information as of December 31, 2022 with respect to compensation plans under which our equity securities are authorized for issuance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Plan Category</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of securities to be&#160;issued upon exercise of outstanding options, warrants and rights<sup style="vertical-align:super">(1)</sup></strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted-average exercise price of outstanding options, warrants and rights<sup style="vertical-align:super">(1)</sup></strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of securities remaining available for future issuance under equity compensation plans<sup style="vertical-align:super">(1)</sup></strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equity compensation plans approved by security holders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">413,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(2)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.65</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,277,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">(4)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equity compensation plans not approved by security holders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,185,447</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">(3)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4.03</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,598,447</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2.61</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(1) Reflects the 1-for-8 reverse stock split of our Common Stock and Series A Preferred Stock effected on September 10, 2020.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(2) Prior to August 25, 2015, we granted awards under the 2008 Plan.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(3) Represents shares of common stock issuable upon the exercise of warrants issued to executive officers, employees and consultants in exchange for services rendered.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(4) On July 7, 2017, the 2016 Plan received shareholder approval, which permits the grant up to 625,000 shares of common stock. On December 30, 2020, we received shareholder approval to amend and restate the 2016 Plan to increase the maximum number of shares of common stock authorized from issuance by 1,375,000, from 625,000 shares to 2,000,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Security Ownership of Certain Beneficial Owners and Management</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">The following table sets forth certain information with respect to the beneficial ownership of our common stock and Series A preferred stock (together, &#8220;Voting Stock&#8221;) as of March 7, 2023 for:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">each person (or group of affiliated persons) known by us to be the beneficial owner of more than 5% of our outstanding shares of common stock or Series A preferred stock;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">each of our directors and nominees for election to the Board;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">each of the executive officers named in the summary compensation table; and</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">all of our directors and executive officers as a group.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have determined beneficial ownership in accordance with the rules of the SEC. Except as indicated by the footnotes below, we believe, based on the information furnished to us, that the persons and entities named in the following table have sole voting and investment power with respect to all shares of Voting Stock that they beneficially own, subject to applicable community property laws.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Applicable percentage ownership is based on 16,811,513 shares of common stock and 63,750 shares of Series A preferred stock outstanding at March 7, 2023.&#160;In computing the number of shares of Voting Stock beneficially owned by a person and the percentage ownership of that person, we deemed to be outstanding all shares of Voting Stock subject to options, warrants or other convertible securities held by that person or entity that are currently exercisable or releasable or that will become exercisable or releasable within 60 days of March 7, 2023.&#160;We did not deem these shares outstanding, however, for the purpose of computing the percentage ownership of any other person.&#160;Except as otherwise noted, the address of each person or entity in the following table is c/o TOMI Environmental Solutions, Inc., 8430 Spires Way., Suite N, Frederick, MD 21701.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">51</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="14"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares Beneficially Owned</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>% of Total</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Series A Preferred Stock</strong></p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Voting</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name of Beneficial Owner</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>% of Class</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>% of Class</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Power<sup style="vertical-align:super">(1</sup></strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>5% Shareholders:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Lau Sok Huy<sup style="vertical-align:super">(2)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,170,139</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">10.9</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">10.8</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Named Executive Officers and Directors:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Halden S. Shane<sup style="vertical-align:super">(1)(3)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,133,523</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19.0</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">63,750</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">100.0</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19.2</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Elissa J. Shane<sup style="vertical-align:super">(4)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">475,164</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.2</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.2</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Nick Jennings<sup style="vertical-align:super">(5)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">103,119</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Walter Johnsen<sup style="vertical-align:super">(6)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">88,750</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Kelly Anderson<sup style="vertical-align:super">(7)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">88,750</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Lim Boh Soon<sup style="vertical-align:super">(8)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">143,774</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">*</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Executive Officers and Directors as a Group <sup style="vertical-align:super">(9)</sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,039,330</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23.2</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23.4</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">* Denotes ownership of less than 1%.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(1) Percentage of total voting power represents voting power with respect to all shares of our Common Stock and Series A Preferred Stock, as a single class. The holders of Common Stock and Series A Preferred Stock are each entitled to one vote per share.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(2) Based on Form 3 filed with the SEC by Lau Sok Huy on January 24, 2018.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(3) Consists of: (i) 2,411,023 shares of Common Stock held of record by Dr. Shane; (ii) 187,500 shares of Common Stock held of record by the Shane Family Trust; (iii) 125,000 shares of Common Stock held of record by Belinha Shane; and (iv) 1,410,000 shares of Common Stock issuable upon the exercise of warrants and options to purchase Common Stock held by Dr. Shane that are exercisable or will become exercisable within 60 days of March 7, 2023. Dr. Shane is a co-trustee of the Shane Family Trust and may be deemed to share voting and investment power over the securities held by the trust. Belinha Shane is Dr. Shane&#8217;s wife. Dr. Shane disclaims ownership of such shares held by his wife, except to the extent of his pecuniary interest.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(4) Consists of: (i) 236,414 shares of Common Stock held of record by Ms. Shane; and (ii) 238,750 shares of Common Stock issuable upon the exercise of warrants and options to purchase Common Stock held by Ms. Shane that are exercisable or will become exercisable within 60 days of March 7, 2023.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(5) Consists of: (i) 26,519 shares of Common Stock held of record by Mr. Jennings; and (ii) 77,500 shares of Common Stock issuable upon the exercise of warrants and options to purchase Common Stock held by Mr. Jennings that are exercisable or will become exercisable within 60 days of March 7, 2023.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(6) Consists of: (i) 88,750 shares of Common Stock held of record by Mr. Johnsen; and (ii) 3,125 shares of Common Stock issuable upon exercise of stock options that are exercisable or will become exercisable within 60 days of March 7, 2023.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(7) Consists of: (i) 88,750 shares of Common Stock held of record by Ms. Anderson; and (ii) 3,125 shares of Common Stock issuable upon exercise of stock options that are exercisable or will become exercisable within 60 days of March 7, 2023.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(8) Consists of 143,774 shares of Common Stock held of record by Dr. Lim.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">(9) Consists of: (i) 3,306,830 shares of Common Stock; (ii) 1,150,000 shares of Common Stock issuable upon the exercise of warrants to purchase Common Stock; and (iii) 582,500 shares of Common Stock issuable upon exercise of stock options that are exercisable or will become exercisable within 60 days of March 7, 2023.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Changes in Control</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We are unaware of any contract or other arrangement the operation of which may at a subsequent date result in a change in control of our Company.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">52</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i13">Item 13. Certain Relationships and Related Transactions, and Director Independence</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Transactions with Related Persons</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">None.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Independence of the Board</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Based upon information submitted by Mr. Johnsen, Ms. Anderson, and Dr. Lim, the Board has determined that each of them is &#8220;independent&#8221; under Nasdaq corporate governance rules. Dr. Shane and Elissa Shane are not independent directors as they are employees of the Company. No director will be considered &#8220;independent&#8221; unless the Board affirmatively determines that the director has no direct or indirect material relationship with the Company.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our Board has three separate standing committees: the Audit Committee, the Compensation Committee and the Nominating and Corporate Governance Committee.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We have made each of our committee charters available on our website at http://investor.tomimist.com/.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i14">Item 14. Principal AccountING Fees and Services</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Accountant Fees</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">The following table presents the aggregate fees billed for audit and other services provided by our independent registered public accounting firm, Rosenberg Rich Baker Berman, P.A., during the 2022 and 2021 fiscal years:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Fiscal Years </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Audit Fees (1)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">150,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">161,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Audit-Related Fees (2)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tax Fees (3)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">All Other Fees (4)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">&#8212;</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">150,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">161,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.5in">(1) Audit Fees- Audit fees represent the professional services rendered for the audit of our annual financial statements and the review of our financial statements included in quarterly reports, along with services normally provided by the accounting firm in connection with statutory and regulatory filings or engagements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.5in">(2) Audit-Related Fees- Audit-related fees represent professional services rendered for assurance and related services by Rosenberg Rich Baker Berman, P.A. that were reasonably related to the performance of the audit or review of our financial statements that are not reported under audit fees.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.5in">(3) Tax Fees- Tax fees represent professional services rendered by the accounting firm for tax compliance, tax advice, and tax planning.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.5in">(4) All Other Fees- All other fees represent fees billed for products and services provided by Rosenberg Rich Baker Berman, P.A other than the services reported for the other categories.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Pre-Approval Policies</strong> and <strong>Procedures of the Audit Committee</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Consistent with the rules and regulations promulgated by the Securities and Exchange Commission, the Audit Committee approves the engagement of our independent registered public accounting firm and is also required to pre-approve all audit and non-audit expenses. All of the services described above were approved by the Audit Committee in accordance with its procedure. We do not otherwise rely on pre-approval policies and procedures.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">53</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="p4">PART IV</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i15">Item 15. EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(a)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Documents filed as part of this report:</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:8%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Financial Statements. See Index to Financial Statements and Schedule on page F-1.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(2)</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Schedules to Financial Statements. All financial statement schedules have been omitted because they are either inapplicable or the information required is provided in our consolidated financial statements and the related notes thereto, included in Part II, Item 8 of this Annual Report on Form 10-K.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(3)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The exhibits listed on the accompanying Exhibit Index are filed (or incorporated by reference herein) as part of this Annual Report on Form 10-K.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Item 16. FORM 10-K SUMMARY</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">None.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">54</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="exhibit">EXHIBIT INDEX</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exhibit Number</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Description of Exhibit</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Form</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>File No.</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Date</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exhibit</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Filed Herewith</strong></p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002209000018/tomi-s1_restated.txt">3.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002209000018/tomi-s1_restated.txt">Articles of Restatement of the Registrant, effective October 6, 2009</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">S-1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">333-162356</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10/6/09</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002211000011/tomi-8k_110711ex.txt">3.2</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002211000011/tomi-8k_110711ex.txt">Articles of Amendment of Articles of Incorporation of the Registrant, effective October 24, 2011</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">11/07/11</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495420010067/tomz_ex31.htm">3.3</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495420010067/tomz_ex31.htm">Articles of Amendment of Articles of Incorporation of the Registrant, effective September 10, 2020</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">9/14/20</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_32.htm">3.4</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_32.htm">Amended Bylaws of the Registrant, adopted effective November 2, 2007</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5/16/16</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3.2</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002216000011/8k020116exhibit3.htm">3.5</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002216000011/8k020116exhibit3.htm">Amendment to Amended Bylaws of the Registrant, adopted effective January 29, 2016</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2/1/16</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3.2</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495420011837/tomx_ex41.htm">4.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495420011837/tomx_ex41.htm">Specimen certificate evidencing shares of common stock of the Registrant</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">S-3</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">333-249850</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">11/4/20</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4.2</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Description of Registrants Securities</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421005868/tomi_ex41.htm">4.3</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421005868/tomi_ex41.htm">Form of Warrant to Purchase Common Stock</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">05/17/21</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4.1</p></td><td></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421005868/tomi_ex42.htm">4.4</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421005868/tomi_ex42.htm">Form of Non-Qualified Stock Option Agreement</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">05/17/21</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4.2</p></td><td></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex41.htm">4.5</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex41.htm">Form of Common Stock Purchase Warrant</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">09/26/21</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4.1</p></td><td></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex42.htm">4.6</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex42.htm">Form of Placement Agent Warrant</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">09/26/21</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">4.2</p></td><td></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.1+</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Amended and Restated 2016 Equity Incentive Plan, as adopted by the Registrant&#8217;s stockholders on December 30, 2020</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">DEF 14A</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">001-39574</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">12/2/20</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Appendix A</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_101.htm">10.2+</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_101.htm">Offer Letter, dated January 15, 2016, by and between the Registrant and Dr. Halden Shane</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5/16/16</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_103.htm">10.4+</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_103.htm">Offer Letter, dated September 2, 2015, by and between the Registrant and Nick Jennings</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5/16/16</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.3</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_105.htm">10.6+</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000135448816007473/ex_105.htm">Form of Appointment to the Board of Directors as Independent Director of the Registrant</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5/16/16</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.5</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.7</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Restated Manufacturing and Development Agreement, dated November 10, 2016, by and between the Registrant and RG Group</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-Q</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">9/30/16</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002218000001/tomi-8k_010818ex10.htm">10.8+</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002218000001/tomi-8k_010818ex10.htm">Employment Agreement, entered into as of January 5, 2018, by and between the Registrant and Elissa J. Shane, effective as of January 1, 2018</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1/8/18</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.9+</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Amendment to Executive Employment Agreement</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex101.htm">10.10</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex101.htm">Form of Securities Purchase Agreement dated as of September 26, 2021, between the Registrant and the purchasers named therein</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">8-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">09/26/21</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002209000006/ozom-10k_code.txt">14.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="http://www.sec.gov/Archives/edgar/data/314227/000117002209000006/ozom-10k_code.txt">Code of Ethics</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">10-K</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">000-09908</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3/31/09</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">14</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex211.htm">21.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex211.htm">Subsidiaries of the Registrant</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">24.1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Power of Attorney (included in signature page)</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex311.htm">31.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex311.htm">Certification of Chief Executive Officer pursuant to Rule&#160;13a-14(a)&#160;or Rule&#160;15d-14(a)&#160;of the Securities Exchange Act of 1934, as amended, as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex312.htm">31.2</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex312.htm">Certification of Chief Financial Officer pursuant to Rule&#160;13a-14(a)&#160;or Rule&#160;15d-14(a)&#160;of the Securities Exchange Act of 1934, as amended, as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex321.htm">32.1#</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex321.htm">Certifications of Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.INS</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Instance Document</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.SCH</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Schema</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.CAL</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Calculation Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.DEF</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Definition Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.LAB</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Label Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.PRE</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Presentation Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">+</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Indicates a management contract or compensatory plan.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">#</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The information in Exhibit 32.1 shall not be deemed &#8220;filed&#8221; for purposes of Section 18 of the Securities Exchange Act of 1934, as amended, or the Exchange Act, or otherwise subject to the liabilities of that section, nor shall they be deemed incorporated by reference in any filing under the Securities Act of 1933, as amended, or the Exchange Act (including this report), unless the Registrant specifically incorporates the foregoing information into those documents by reference.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;</strong></p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">55</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="sig">SIGNATURES</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:0.5in">Pursuant to the requirements of Section&#160;13 or 15(d) 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.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:50%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">DATED:&#160; March 16, 2023</p></td><td style="width:3%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:35%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">TOMI ENVIRONMENTAL SOLUTIONS, INC.</p></td><td style="width:12%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;HALDEN S. SHANE</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Halden S Shane</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Chairman of the Board and Chief Executive Officer</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>(Principal Executive Officer)</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>POWER OF ATTORNEY</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:0.5in">The undersigned directors and officers of TOMI Environmental Solutions, Inc. constitute and appoint Halden S. Shane and Nick Jennings, or either of them, as their true and lawful attorney and agent with power of substitution, to do any and all acts and things in our name and behalf in our capacities as directors and officers and to execute any and all instruments for us and in our names in the capacities indicated below, which said attorney and agent may deem necessary or advisable to enable said corporation to comply with the Securities Exchange Act of 1934, as amended, and any rules, regulations and requirements of the Securities and Exchange Commission, in connection with this Annual Report on Form 10-K, including specifically but without limitation, power and authority to sign for us or any of us in our names in the capacities indicated below, any and all amendments hereto; and we do hereby ratify and confirm all that said attorney and agent shall do or cause to be done by virtue hereof. Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:35%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 7.5pt; text-align:center;"><strong>Signature</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Title</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:12%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Date</strong>&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;HALDEN S. SHANE</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; Chairman of the Board and Chief Executive Officer (Principal Executive Officer)</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">March 16, 2023</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Halden S. Shane</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;NICK JENNINGS</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; Chief Financial Officer (Principal Financial Officer and Principal Accounting Officer)</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">March 16, 2023</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Nick Jennings</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;ELISSA J. SHANE </p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; Director</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">March 16, 2023</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Elissa J. Shane </strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:35%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;WALTER C. JOHNSEN</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; Director</p></td><td style="width:12%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">March 16, 2023</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Walter C. Johnsen</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:35%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;KELLY J. ANDERSON</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; Director</p></td><td style="width:12%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">March 16, 2023</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Kelly J. Anderson</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:35%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&#160;&#160;&#160;&#160;LIM BOH SOON</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160; Director</p></td><td style="width:12%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">March 16, 2023</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lim Boh Soon</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">56</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px"><span class="atag" style="display: inline" id="fine">&#160;&#160; </span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="TOCF">INDEX TO CONSOLIDATED FINANCIAL STATEMENTS</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Page</strong>&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#repo">Report of Independent Registered Public Accounting Firms [PCAOB No. <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:AuditorFirmId">89</ix:nonNumeric>].</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-2</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#bs">Consolidated Balance Sheets as of December 31, 2022 and 2021</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-3</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#cso">Consolidated Statements of Operations for the Years Ended December 31, 2022 and 2021</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-4</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#equity">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December 31, 2022 and 2021</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-5</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#cf">Consolidated Statements of Cash Flows for the Years Ended December 31, 2022 and 2021</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-6</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#notes">Notes to Consolidated Financial Statements</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-8</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-1</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING c</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">To the Board of Directors and </p><p style="font-size:10pt;font-family:times new roman;margin:0px">Stockholders of TOMI Environmental Solutions, Inc. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;"><strong>Opinion on the Financial Statements</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">We have audited the accompanying consolidated balance sheets of TOMI Environmental Solutions, Inc. (the Company) as of year ended December 31, 2022 and 2021, and the related consolidated statements of operations, shareholders&#8217; equity, and cash flows for each of the years in the two-year period ended December 31, 2022 and 2021, and the related notes (collectively referred to as the financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of year ended December 31, 2022 and 2021, and the results of its operations and its cash flows for each of the years in the two-year period ended December 31, 2022, in conformity with accounting principles generally accepted in the United States of America.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;"><strong>Basis for Opinion</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">These financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on the Company&#8217;s financial statements based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (PCAOB) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting. As part of our audits, we are required to obtain an understanding of internal control over financial reporting, but not for the purpose of expressing an opinion on the effectiveness of the Company&#8217;s internal control over financial reporting. Accordingly, we express no such opinion.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">Our audits included performing procedures to assess the risks of material misstatement of the financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the financial statements. We believe that our audits provide a reasonable basis for our opinion.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;"><strong>Critical Audit Matters</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">The critical audit matters communicated below are matters arising from the current period audit of the financial statements that were communicated or required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the financial statements, taken as a whole, and we are not, by communicating the critical audit matters below, providing separate opinions on the critical audit matters or on the accounts or disclosures to which they relate.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;"><strong><em>Allowance for doubtful accounts</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">As described further in Note 2 to the consolidated financial statements, the Company maintains an allowance for doubtful accounts against its accounts receivable balances based on the future estimated credit losses. As of December 31, 2022, the allowance for doubtful accounts was $1.7 million, or 38% of total accounts receivable. This estimate is determined based on internally developed qualitative and quantitative factors derived from the aging of receivables, the Company&#8217;s past collection history with customers, and economic trends and conditions. We identified the estimates used to determine the allowance for doubtful accounts as a critical audit matter.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">We have identified the evaluation of the Company&#8217;s estimation of allowance for doubtful accounts as a critical audit matter. There is an established policy for determining overall allowance for doubtful accounts with specific judgement in place for certain account balances that require additional evaluation and assessment which are used in estimating losses related to customer receivables. There is also a high degree of subjectivity in management's assessment of the completeness and accuracy of the allowance for doubtful accounts, specifically the portion of the receivable expected to be collected, which requires a heightened level of auditor judgement in auditing the estimate.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">Our audit procedures related to the allowance for doubtful accounts included:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:justify;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Testing the mathematical accuracy of management&#8217;s allowance for doubtful accounts calculation as of December 31, 2022 by recalculating and independently applying the policy to each risk pool, as well as recalculating the aging of receivables based on underlying source documentation.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Recomputing current and historical collection rates for customer receivable balances and comparing the historical loss rates against the current period estimated loss rates within the respective risk pools and performing a retrospective analysis of the subsequent collections on customer receivables with certain risk characteristics.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Evaluating the reasonableness of management&#8217;s qualitative adjustments against the allowance for doubtful accounts by obtaining corroborating evidence which supports the adjustments and assumptions made by management in determining the allowance.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Inventory &#8211; Valuation associated with excess and obsolete (E&amp;O) inventory </em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">As further described in Note 2 to the consolidated financial statements, inventory is stated at the lower of cost or net realizable value. At the balance sheet date, the Company evaluated inventories for excess quantities and obsolescence and included an inventory reserve against its inventory balances. As of December 31, 2022, the inventory reserve was approximately $.01 million, or 2% of total inventory. To estimate the amount of inventory that may be in excess or obsolete, the Company reviews inventory quantities on hand as well as historical and projected distribution levels. The Company&#8217;s model assumes that inventory will be distributed on a first-in-first-out basis. Due to the nature of the inventory and the levels of inventory purchased in prior years, estimating the amount of inventory that is in excess or potentially obsolete involves significant judgments and estimates.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">Given the significant judgments associated with evaluating the valuation of E&amp;O inventory, auditing the reasonableness of management&#8217;s estimates and assumptions involved especially subjective judgment and an increased extent of effort, therefore we identified the estimates used to determine the valuation of the E&amp;O inventory as a critical audit matter.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our audit procedures related to the Company&#8217;s valuation of E&amp;O inventory included the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:justify;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Evaluating the design and implementation of controls over the E&amp;O inventory valuation.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Evaluating management&#8217;s future projections by comparing the historical sales.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Obtaining the Company&#8217;s E&amp;O calculation and tested the mathematical accuracy.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Assessing the reasonableness of the assumptions used in the E&amp;O calculation by developing an independent expectation and comparing our independent expectation to the results of the Company&#8217;s calculation.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Inquiring of the Company&#8217;s employees outside of the accounting department and evaluating other areas of the audit to identify business, product, or industry changes that may impact the inputs in the inventory valuation calculation.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ <ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:AuditorName">Rosenberg Rich Baker Berman, P.A.</ix:nonNumeric></p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="width:44%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">We have served as the Company&#8217;s auditor since 2021.</p></td></tr><tr style="height:15px"><td style="width:36%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="width:44%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2022-01-01to2022-12-31" name="dei:AuditorLocation">Somerset, NJ</ix:nonNumeric></p></td></tr><tr style="height:15px"><td style="width:36%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="width:36%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">March 16, 2023</p></td><td style="width:8%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-2</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td></tr><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="bs">&#160;CONSOLIDATED BALANCE SHEETS</span></strong></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ASSETS</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Current Assets:</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_689" contextRef="AsOf2022-12-31" name="us-gaap:CashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,866,733</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_690" contextRef="AsOf2021-12-31" name="us-gaap:CashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,317,443</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accounts Receivable - net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_691" contextRef="AsOf2022-12-31" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,772,340</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_692" contextRef="AsOf2021-12-31" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,964,776</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_693" contextRef="AsOf2022-12-31" name="us-gaap:OtherReceivablesNetCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">164,150</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_694" contextRef="AsOf2021-12-31" name="us-gaap:OtherReceivablesNetCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">235,904</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventories (Note 3)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_695" contextRef="AsOf2022-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,495,999</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_696" contextRef="AsOf2021-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,743,280</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vendor Deposits (Note 4)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_697" contextRef="AsOf2022-12-31" name="us-gaap:DepositsAssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">447,052</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_698" contextRef="AsOf2021-12-31" name="us-gaap:DepositsAssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">288,586</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Prepaid Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_699" contextRef="AsOf2022-12-31" name="us-gaap:PrepaidExpenseCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">388,359</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_700" contextRef="AsOf2021-12-31" name="us-gaap:PrepaidExpenseCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">343,573</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Total Current Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_701" contextRef="AsOf2022-12-31" name="us-gaap:AssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">12,134,633</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_702" contextRef="AsOf2021-12-31" name="us-gaap:AssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">12,893,562</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and Equipment &#8211; net (Note 5)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_703" contextRef="AsOf2022-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,335,331</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_704" contextRef="AsOf2021-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,488,319</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Assets:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Intangible Assets &#8211; net (Note 6)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_706" contextRef="AsOf2022-12-31" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,025,736</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_707" contextRef="AsOf2021-12-31" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:numdotdecimal" decimals="0" unitRef="USD">956,284</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Lease - Right of Use Asset (Note - 7)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_708" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" decimals="0" unitRef="USD">528,996</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_709" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" decimals="0" unitRef="USD">583,271</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs - net (Note 8)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_710" contextRef="AsOf2022-12-31" name="us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_711" contextRef="AsOf2021-12-31" name="us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,476</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_712" contextRef="AsOf2022-12-31" name="us-gaap:OtherAssetsNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">475,103</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_713" contextRef="AsOf2021-12-31" name="us-gaap:OtherAssetsNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">341,006</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Total Other Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_714" contextRef="AsOf2022-12-31" name="us-gaap:OtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,029,835</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_715" contextRef="AsOf2021-12-31" name="us-gaap:OtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,891,037</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_716" contextRef="AsOf2022-12-31" name="us-gaap:Assets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">15,499,799</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_717" contextRef="AsOf2021-12-31" name="us-gaap:Assets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">16,272,918</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>LIABILITIES AND SHAREHOLDERS&#8217; EQUITY </strong></p></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="9"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current Liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accounts Payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_720" contextRef="AsOf2022-12-31" name="us-gaap:AccountsPayableCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,761,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_721" contextRef="AsOf2021-12-31" name="us-gaap:AccountsPayableCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,054,040</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accrued Expenses and Other Current Liabilities (Note 13)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_722" contextRef="AsOf2022-12-31" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">728,703</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_723" contextRef="AsOf2021-12-31" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">664,608</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Deferred Revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_724" contextRef="AsOf2022-12-31" name="us-gaap:CustomerDepositsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">699,732</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_725" contextRef="AsOf2021-12-31" name="us-gaap:CustomerDepositsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_726" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">100,282</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_727" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">91,775</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Total Current Liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_728" contextRef="AsOf2022-12-31" name="us-gaap:LiabilitiesCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,290,467</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_729" contextRef="AsOf2021-12-31" name="us-gaap:LiabilitiesCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,816,423</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-Term Liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, Net of Current Portion (Note 7)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_731" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">761,132</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_732" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">861,415</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Total Long-Term Liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_733" contextRef="AsOf2022-12-31" name="us-gaap:LiabilitiesNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">761,132</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_734" contextRef="AsOf2021-12-31" name="us-gaap:LiabilitiesNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">861,415</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Total Liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_735" contextRef="AsOf2022-12-31" name="us-gaap:Liabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,051,599</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_736" contextRef="AsOf2021-12-31" name="us-gaap:Liabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,677,838</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Shareholders&#8217; Equity:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cumulative Convertible Series A Preferred Stock; par value $<ix:nonFraction id="fid_764" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockParOrStatedValuePerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.01</ix:nonFraction> per share, <ix:nonFraction id="fid_765" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,000,000</ix:nonFraction> shares authorized; <ix:nonFraction id="fid_770" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockSharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction> shares issued and outstanding at December 31, 2022 and December 31, 2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_738" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_739" contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cumulative Convertible Series B Preferred Stock; $<ix:nonFraction id="fid_762" contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember" name="tomz:PreferredStockParOrStatedValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,000</ix:nonFraction> stated value; 7.5% Cumulative dividend; <ix:nonFraction id="fid_766" contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">4,000</ix:nonFraction> shares authorized; none issued and outstanding at December 31, 2022 and December 31, 2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_740" contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember" name="us-gaap:PreferredStockValue" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_741" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" name="us-gaap:PreferredStockValue" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Common stock; par value $<ix:nonFraction id="fid_753" contextRef="AsOf2022-12-31" name="us-gaap:CommonStockParOrStatedValuePerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.01</ix:nonFraction> per share, <ix:nonFraction id="fid_755" contextRef="AsOf2022-12-31" name="us-gaap:CommonStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">250,000,000</ix:nonFraction> shares authorized; <ix:nonFraction id="fid_758" contextRef="AsOf2022-12-31" name="us-gaap:CommonStockSharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,763,955</ix:nonFraction> and <ix:nonFraction id="fid_757" contextRef="AsOf2021-12-31" name="us-gaap:CommonStockSharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,680,955</ix:nonFraction> shares issued and outstanding at December 31, 2022 and December 31, 2021, respectively.</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_742" contextRef="AsOf2022-12-31" name="us-gaap:CommonStockValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">197,640</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_743" contextRef="AsOf2021-12-31" name="us-gaap:CommonStockValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">196,810</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Additional Paid-In Capital</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_744" contextRef="AsOf2022-12-31" name="us-gaap:AdditionalPaidInCapital" format="ixt:numdotdecimal" decimals="0" unitRef="USD">57,673,559</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_745" contextRef="AsOf2021-12-31" name="us-gaap:AdditionalPaidInCapital" format="ixt:numdotdecimal" decimals="0" unitRef="USD">56,941,209</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accumulated Deficit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_746" contextRef="AsOf2022-12-31" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">46,423,637</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_747" contextRef="AsOf2021-12-31" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">43,543,577</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Shareholders&#8217; Equity</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_748" contextRef="AsOf2022-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,448,200</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_749" contextRef="AsOf2021-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">13,595,080</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Liabilities and Shareholders&#8217; Equity</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_750" contextRef="AsOf2022-12-31" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">15,499,799</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_751" contextRef="AsOf2021-12-31" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">16,272,918</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The accompanying notes are an integral part of the consolidated financial statements.</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-3</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td></tr><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="cso">CONSOLIDATED STATEMENTS OF OPERATIONS</span></strong></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For The Years Ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Sales, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_778" contextRef="From2022-01-01to2022-12-31" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">8,338,099</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_779" contextRef="From2021-01-01to2021-12-31" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,753,582</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_780" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,277,644</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_781" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,166,891</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Gross Profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_782" contextRef="From2022-01-01to2022-12-31" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,060,455</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_783" contextRef="From2021-01-01to2021-12-31" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,586,691</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Expenses:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Professional Fees</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_785" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ProfessionalFees" format="ixt:numdotdecimal" decimals="0" unitRef="USD">536,311</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_786" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProfessionalFees" format="ixt:numdotdecimal" decimals="0" unitRef="USD">538,093</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and Amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_787" contextRef="From2022-01-01to2022-12-31" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">329,164</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_788" contextRef="From2021-01-01to2021-12-31" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">294,665</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Selling Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_789" contextRef="From2022-01-01to2022-12-31" name="us-gaap:SellingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,867,013</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_790" contextRef="From2021-01-01to2021-12-31" name="us-gaap:SellingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,674,466</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Research and Development</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_791" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">352,238</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_792" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">572,700</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Consulting Fees</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_793" contextRef="From2022-01-01to2022-12-31" name="tomz:ConsultingFees" format="ixt:numdotdecimal" decimals="0" unitRef="USD">215,180</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_794" contextRef="From2021-01-01to2021-12-31" name="tomz:ConsultingFees" format="ixt:numdotdecimal" decimals="0" unitRef="USD">326,614</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">General and Administrative</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_795" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OtherGeneralAndAdministrativeExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,642,548</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_796" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OtherGeneralAndAdministrativeExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,104,363</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Operating Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_797" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,942,454</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_798" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" decimals="0" unitRef="USD">9,510,901</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (loss) from Operations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_799" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,881,999</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_800" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,924,210</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Income (Expense):</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Gain Upon Debt Extinguishment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_802" contextRef="From2022-01-01to2022-12-31" name="us-gaap:GainsLossesOnExtinguishmentOfDebt" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_803" contextRef="From2021-01-01to2021-12-31" name="us-gaap:GainsLossesOnExtinguishmentOfDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD">414,583</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest Income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_804" contextRef="From2022-01-01to2022-12-31" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,939</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_805" contextRef="From2021-01-01to2021-12-31" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,076</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_806" contextRef="From2022-01-01to2022-12-31" name="us-gaap:InterestExpense" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_807" contextRef="From2021-01-01to2021-12-31" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,034</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Other Income (Expense)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_808" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NonoperatingIncomeExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,939</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_809" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NonoperatingIncomeExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">414,625</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (loss) before income taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_810" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_811" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,509,585</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for Income Taxes (Note 16)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_812" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_813" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">74,086</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_814" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_815" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) Per Common Share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="MARGIN: 0px 0px 0px 15px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_817" contextRef="From2022-01-01to2022-12-31" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.15</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_818" contextRef="From2021-01-01to2021-12-31" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_819" contextRef="From2022-01-01to2022-12-31" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.15</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_820" contextRef="From2021-01-01to2021-12-31" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Weighted Average Common Shares Outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_821" contextRef="From2022-01-01to2022-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,743,544</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_822" contextRef="From2021-01-01to2021-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">17,538,994</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Weighted Average Common Shares Outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_823" contextRef="From2022-01-01to2022-12-31" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,743,544</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_824" contextRef="From2021-01-01to2021-12-31" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">17,538,994</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="9" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The accompanying notes are an integral part of the consolidated financial statements.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-4</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:109%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="equity">TOMI ENVIRONMENTAL SOLUTIONS, INC.</span></strong></p></td></tr><tr style="height:15px"><td style="width:109%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>FOR THE YEARS ENDED DECEMBER 31, 2022 AND 2021</strong></p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Series A Preferred</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Additional Paid</strong>&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shareholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>in Capital</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at January 1, 2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_825" contextRef="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_827" contextRef="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_826" contextRef="AsOf2020-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">16,761,514</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_828" contextRef="AsOf2020-12-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">167,616</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_829" contextRef="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">52,142,398</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_830" contextRef="AsOf2020-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">39,108,078</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_831" contextRef="AsOf2020-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">13,202,574</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equity Compensation </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_834" contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:EquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,354</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_836" contextRef="From2021-01-01to2021-12-31" name="tomz:EquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,354</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Common Stock Issued for Services Provided</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_838" contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember" name="tomz:CommonStockIssuedForServicesProvidedShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_840" contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_841" contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">227,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_843" contextRef="From2021-01-01to2021-12-31" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">228,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Common Stock Issued in Private Placement</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_845" contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,869,442</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_847" contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">28,694</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_848" contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,552,957</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_850" contextRef="From2021-01-01to2021-12-31" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,581,651</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net&#160; (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_854" contextRef="From2021-01-01to2021-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_855" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at December 31, 2021</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_856" contextRef="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_858" contextRef="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">638</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_857" contextRef="AsOf2021-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,680,956</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_859" contextRef="AsOf2021-12-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">196,810</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_860" contextRef="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">56,941,209</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_861" contextRef="AsOf2021-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">43,543,577</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_862" contextRef="AsOf2021-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">13,595,080</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equity Compensation </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_865" contextRef="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:EquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">653,843</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_867" contextRef="From2022-01-01to2022-12-31" name="tomz:EquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">653,843</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Common Stock Issued for Services Provided</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_869" contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember" name="tomz:CommonStockIssuedForServicesProvidedShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">51,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_871" contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">518</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_872" contextRef="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">53,820</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_874" contextRef="From2022-01-01to2022-12-31" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">54,338</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants and Options Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_876" contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember" name="tomz:WarrantsAndOptionsExercisedShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_878" contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember" name="tomz:WarrantsAndOptionsExercisedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">312</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_879" contextRef="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:WarrantsAndOptionsExercisedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">24,687</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_881" contextRef="From2022-01-01to2022-12-31" name="tomz:WarrantsAndOptionsExercisedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net&#160; (Loss) </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_885" contextRef="From2022-01-01to2022-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_886" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at December 31, 2022</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_887" contextRef="AsOf2022-12-31_tomz_SeriesAPreferredStocksMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_889" contextRef="AsOf2022-12-31_tomz_SeriesAPreferredStocksMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">638</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_888" contextRef="AsOf2022-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,763,956</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_890" contextRef="AsOf2022-12-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">197,640</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_891" contextRef="AsOf2022-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">57,673,559</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_892" contextRef="AsOf2022-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">46,423,637</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_893" contextRef="AsOf2022-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,448,200</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The accompanying notes are an integral part of the consolidated financial statements.</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-5</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td></tr><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="cf">CONSOLIDATED STATEMENTS OF CASH FLOWS</span></strong></p></td></tr><tr style="height:15px"><td colspan="9"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flow From Operating Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_895" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_896" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Adjustments to Reconcile Net Income (Loss) to</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Net Cash Provided by (Used) In Operating Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Depreciation and Amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_899" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">329,164</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_900" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">294,665</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Amortization of Right of Use Asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_901" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">157,315</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_902" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">157,315</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Amortization of Software Costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_903" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CapitalizedComputerSoftwareAmortization1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,475</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_904" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CapitalizedComputerSoftwareAmortization1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,902</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Equity Compensation Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_905" contextRef="From2022-01-01to2022-12-31" name="tomz:EquityCompensationExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">653,843</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_906" contextRef="From2021-01-01to2021-12-31" name="tomz:EquityCompensationExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,354</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Value of Equity Issued for Services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_907" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims" format="ixt:numdotdecimal" decimals="0" unitRef="USD">54,338</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_908" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims" format="ixt:numdotdecimal" decimals="0" unitRef="USD">228,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Reserve for Bad Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_909" contextRef="From2022-01-01to2022-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_910" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,288,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_911" contextRef="From2022-01-01to2022-12-31" name="us-gaap:InventoryLIFOReservePeriodCharge" format="ixt:numdotdecimal" decimals="0" unitRef="USD">95,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_912" contextRef="From2021-01-01to2021-12-31" name="us-gaap:InventoryLIFOReservePeriodCharge" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Gain Upon Debt Extinguishment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_913" contextRef="From2022-01-01to2022-12-31" name="us-gaap:GainsLossesOnExtinguishmentOfDebt" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_914" contextRef="From2021-01-01to2021-12-31" name="us-gaap:GainsLossesOnExtinguishmentOfDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD">414,583</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Changes in Operating Assets and Liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Decrease (Increase) in:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Accounts Receivable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_917" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">807,564</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_918" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">463,925</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Inventory</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_919" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:numdotdecimal" decimals="0" unitRef="USD">152,281</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_920" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">961,765</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Prepaid Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_921" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInPrepaidExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">44,786</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_922" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInPrepaidExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,732</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Vendor Deposits</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_923" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInDeposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">158,466</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_924" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInDeposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD">100,126</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Other Receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_925" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInOtherReceivables" format="ixt:numdotdecimal" decimals="0" unitRef="USD">71,754</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_926" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInOtherReceivables" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">36,953</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Other Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_927" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">177,474</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_928" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">100,149</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Increase (Decrease) in:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Accounts Payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_930" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">707,711</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_931" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">447,429</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Accrued Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_932" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">64,095</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_933" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">166,644</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Deferred Revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_934" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncreaseDecreaseInCustomerDeposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD">693,732</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_935" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncreaseDecreaseInCustomerDeposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">112,880</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Lease Liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_936" contextRef="From2022-01-01to2022-12-31" name="tomz:IncreaseDecreaseInLeaseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">155,622</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_937" contextRef="From2021-01-01to2021-12-31" name="tomz:IncreaseDecreaseInLeaseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">151,088</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Cash Provided (Used) in Operating Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_938" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">1,234,264</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_939" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">3,823,683</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flow From Investing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capitalized Patent and Trademark Costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_941" contextRef="From2022-01-01to2022-12-31" name="tomz:CapitalizedPatentAndTrademarkCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">40,570</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_942" contextRef="From2021-01-01to2021-12-31" name="tomz:CapitalizedPatentAndTrademarkCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">126,697</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Purchase of Property and Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_943" contextRef="From2022-01-01to2022-12-31" name="tomz:PurchaseOfPropertyAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">200,876</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_944" contextRef="From2021-01-01to2021-12-31" name="tomz:PurchaseOfPropertyAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">512,669</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Cash (Used) in Investing Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_945" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">241,446</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_946" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">639,366</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="9" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;The accompanying notes are an integral part of the consolidated financial statements. </p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-6</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC. </strong></p></td></tr><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;CONSOLIDATED STATEMENTS OF CASH FLOWS &#8211; CONTINUED </strong></p></td></tr><tr style="height:15px"><td colspan="9"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Cash Flow From Financing Activities: </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Proceeds from Issuance of Stock and Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_948" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ProceedsFromIssuanceOfWarrants" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_949" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProceedsFromIssuanceOfWarrants" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,581,651</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Proceeds from Exercise of Options and Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_950" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_951" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Cash From Financing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_952" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_953" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,581,651</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Increase (Decrease) In Cash and Cash Equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_954" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">1,450,710</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_955" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" format="ixt:numdotdecimal" decimals="0" unitRef="USD">118,602</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents - Beginning</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_956" contextRef="AsOf2021-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,317,443</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_957" contextRef="AsOf2020-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,198,842</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents &#8211; Ending</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_958" contextRef="AsOf2022-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,866,733</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_959" contextRef="AsOf2021-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,317,443</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Supplemental Cash Flow Information:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash Paid (Refunded) for Income Taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_961" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxesPaidNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">72,086</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_962" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxesPaidNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">75,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Non-Cash Investing and Financing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Patent and trademark costs reclassified from Other Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_964" contextRef="From2022-01-01to2022-12-31" name="tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">43,377</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_965" contextRef="From2021-01-01to2021-12-31" name="tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">118,078</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The accompanying notes are an integral part of the consolidated financial statements.</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-7</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="notes">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_983" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NatureOfOperations" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 1. DESCRIPTION OF BUSINESS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI Environmental Solutions, Inc., a Florida corporation (&#8220;TOMI&#8221;, the &#8220;Company&#8221;, &#8220;we&#8221;, &#8220;our&#8221; and &#8220;us&#8221;) is a global provider of disinfection and decontamination essentials through our premier Binary Ionization Technology&#174; (BIT&#8482;) platform, under which we manufacture, license, service and sell our SteraMist&#174; brand of products, including SteraMist&#174; BIT&#8482;, a hydrogen peroxide-based mist and fog. Our solution and process are environmentally friendly as the only biproduct from our decontamination process is oxygen and water in the form of humidity. Our solution is organically listed in the United States and Canada it is sustainably a green product with no or very little carbon footprint. Our business is organized into five divisions: Healthcare, Life Sciences, TOMI Service Network, Food Safety and Commercial.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Invented under a defense grant in association with the Defense Advanced Research Projects Agency (DARPA) of the U.S. Department of Defense, BIT&#8482; is registered with the U.S. Environmental Protection Agency (EPA) and uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (<strong><sup style="vertical-align:super">.</sup></strong>OH ion), known as ionized Hydrogen Peroxide (iHP&#8482;). Represented by the SteraMist&#174; brand of products, iHP&#8482; produces a germ-killing aerosol that works like a visual non-caustic gas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our products are designed to service a broad spectrum of commercial structures, including, but not limited to, hospitals and medical facilities, bio-safety labs, pharmaceutical facilities, meat and produce processing facilities, universities and research facilities, vivarium labs, other service industries including cruise ships, office buildings, hotel and motel rooms, schools, restaurants, military barracks, police and fire departments, prisons, and athletic facilities. Our products are also used in single-family homes and multi-unit residences. Additionally, our products have been listed on the EPA&#8217;s List N as products that help combat COVID-19 and are actively being used for this purpose.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_966" contextRef="From2022-01-01to2022-12-31" name="us-gaap:SignificantAccountingPoliciesTextBlock" escape="true" continuedAt="cont_1e77f6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Principles of Consolidation</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_984" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ConsolidationPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The accompanying consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Reclassification of Accounts</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_985" contextRef="From2022-01-01to2022-12-31" name="us-gaap:PriorPeriodReclassificationAdjustmentDescription" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Use of Estimates</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_986" contextRef="From2022-01-01to2022-12-31" name="us-gaap:UseOfEstimates" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The preparation of the consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to accounts receivable, inventory, fair values of financial instruments, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p></ix:nonNumeric></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-8</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_1e77f6" continuedAt="cont_0faa11"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Fair Value Measurements</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_987" contextRef="From2022-01-01to2022-12-31" name="us-gaap:FairValueMeasurementPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of inputs, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Cash and Cash Equivalents</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_988" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be in excess of insured limits. At December 31, 2022 and December 31, 2021, there were no cash equivalents. </p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Accounts Receivable</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_989" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ReceivablesPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our accounts receivable are typically from credit worthy customers or, for certain international customers, are supported by pre-payments. For those customers to whom we extend credit, we perform periodic evaluations of their status and maintain allowances for potential credit losses as deemed necessary. We have a policy of reserving for doubtful accounts based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be in doubt. Account balances deemed to be uncollectible are charged to the allowance after all means of collection have been exhausted and the potential for recovery is considered remote.&#160; Bad debt expense for the years ended December 31, 2022 and 2021, was approximately $<ix:nonFraction id="fid_76" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">142,188</ix:nonFraction> and $<ix:nonFraction id="fid_75" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,605,660</ix:nonFraction>, respectively. &#160;At December 31, 2022 and December 31, 2021, the allowance for doubtful accounts reserve was $<ix:nonFraction id="fid_80" contextRef="AsOf2022-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,678,000</ix:nonFraction>.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Inventories</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_990" contextRef="From2022-01-01to2022-12-31" name="us-gaap:InventoryPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We expense costs to maintain certification to cost of goods sold as incurred.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable.&#160; Our reserve for obsolete inventory was $<ix:nonFraction id="fid_82" contextRef="AsOf2022-12-31" name="us-gaap:InventoryValuationReserves" format="ixt:numdotdecimal" decimals="0" unitRef="USD">95,000</ix:nonFraction> and $<ix:nonFraction id="fid_81" contextRef="AsOf2021-12-31" name="us-gaap:InventoryValuationReserves" format="ixt:numdotdecimal" decimals="0" unitRef="USD">0</ix:nonFraction> as of December 31, 2022 and December 31, 2021, respectively.</em></p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Property and Equipment</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_991" contextRef="From2022-01-01to2022-12-31" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation for equipment, furniture and fixtures and vehicles commences once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the lives of the respective leases or service lives of the improvements, whichever is shorter.</p></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-9</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_0faa11" continuedAt="cont_3b87f7"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Leases</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_992" contextRef="From2022-01-01to2022-12-31" name="us-gaap:LesseeLeasesPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depends on classification as a finance or operating lease.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have also elected the practical expedient to not separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense when recognized.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Capitalized Software Development Costs</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_993" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In accordance with ASC 985-20 regarding the development of software to be sold, leased, or marketed, we expense such costs as they are incurred until technological feasibility has been established, at and after which time those costs are capitalized until the product is available for general release to customers. The periodic expense for the amortization of capitalized software development costs will be included in cost of sales. Amortization expense for the years ended December 31, 2022 and 2021, was $<ix:nonFraction id="fid_96" contextRef="From2022-01-01to2022-12-31_us-gaap_SoftwareDevelopmentMember" name="tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,475</ix:nonFraction> and $<ix:nonFraction id="fid_99" contextRef="From2021-01-01to2021-12-31_us-gaap_SoftwareDevelopmentMember" name="tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,900</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Accounts Payable</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_994" contextRef="From2022-01-01to2022-12-31" name="tomz:AccountsPayablePolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, two vendors accounted for approximately <ix:nonFraction id="fid_102" contextRef="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember" name="tomz:ConcentrationRiskPercentage" decimals="INF" unitRef="Pure" scale="-2">55</ix:nonFraction>% of accounts payable. As of December 31, 2021, two vendors accounted for approximately <ix:nonFraction id="fid_119" contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember" name="tomz:ConcentrationRiskPercentage" decimals="INF" unitRef="Pure" scale="-2">53</ix:nonFraction>% of accounts payable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2022, two vendors accounted for <ix:nonFraction id="fid_104" contextRef="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" name="tomz:ConcentrationRiskPercentage" decimals="INF" unitRef="Pure" scale="-2">67</ix:nonFraction>% of cost of sales. For the year ended December 31, 2021, two vendors accounted for <ix:nonFraction id="fid_106" contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" name="tomz:ConcentrationRiskPercentage" decimals="INF" unitRef="Pure" scale="-2">65</ix:nonFraction>% of cost of sales.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Accrued Warranties</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_995" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ExtendedProductWarrantyPolicy" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:40pt">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. As of December 31, 2022, and December 31, 2021, our warranty reserve was $<ix:nonFraction id="fid_84" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction>. (See Note 14).</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Income Taxes</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_996" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes. Net deferred tax benefits have been fully reserved at December 31, 2022 and December 31, 2021. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Net Income (Loss) Per Share</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_997" contextRef="From2022-01-01to2022-12-31" name="us-gaap:EarningsPerSharePolicyTextBlock" escape="true" continuedAt="cont_fce3de"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the treasury stock method and includes the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures.</p></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-10</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_3b87f7" continuedAt="cont_b2bbf2"><ix:continuation id="cont_fce3de"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Potentially dilutive securities as of December 31, 2022 consisted of <ix:nonFraction id="fid_108" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,792,335</ix:nonFraction> shares of common stock issuable upon exercise of outstanding warrants, <ix:nonFraction id="fid_109" contextRef="From2022-01-01to2022-12-31_tomz_StockOptionsMember" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">413,000</ix:nonFraction> shares of common stock issuable upon outstanding options and <ix:nonFraction id="fid_94" contextRef="AsOf2022-12-31" name="tomz:CommonStockIssuableUponConversionOfOutstandingShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction> shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#8220;Convertible Series A Preferred Stock&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Potentially dilutive securities as of December 31, 2021 consisted of <ix:nonFraction id="fid_120" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">3,381,021</ix:nonFraction> shares of common stock issuable upon exercise of outstanding warrants, <ix:nonFraction id="fid_121" contextRef="From2021-01-01to2021-12-31_tomz_StockOptionsMember" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">143,000</ix:nonFraction> shares of common stock issuable upon outstanding options and <ix:nonFraction id="fid_122" contextRef="AsOf2021-12-31" name="tomz:CommonStockIssuableUponConversionOfOutstandingShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction> shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#8220;Convertible Series A Preferred Stock&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Diluted net income or (loss) per share is computed similarly to basic net income or (loss) per share except that the denominator is increased to include the number of additional shares of common stock that would have been outstanding if the potential shares of common stock had been issued and if such additional shares were dilutive. Options, warrants, &#160;and preferred stock <ix:nonFraction id="fid_112" contextRef="AsOf2022-12-31_tomz_EquityIncentivePlanOneMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="-4" unitRef="Shares" scale="5">3.3</ix:nonFraction> million and <ix:nonFraction id="fid_113" contextRef="AsOf2021-09-30_tomz_EquityIncentivePlanOneMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="-4" unitRef="Shares" scale="5">3.6</ix:nonFraction> million shares of common stock were outstanding at December 31, 2022 and 2021, respectively, but were excluded from the computation of diluted net loss per share at December 31, 2022 and 2021 due to the anti-dilutive effect on net loss per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1006" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock" escape="true" continuedAt="cont_d2e0b2"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_2" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_3" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_6" contextRef="From2022-01-01to2022-12-31" name="tomz:NetLossAttributableToCommonShareholders" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_7" contextRef="From2021-01-01to2021-12-31" name="tomz:NetLossAttributableToCommonShareholders" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_11" contextRef="From2022-01-01to2022-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,743,544</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_12" contextRef="From2021-01-01to2021-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">17,538,994</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_15" contextRef="From2022-01-01to2022-12-31" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,743,544</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_16" contextRef="From2021-01-01to2021-12-31" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">17,538,994</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_20" contextRef="From2022-01-01to2022-12-31" name="tomz:Basic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.15</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_21" contextRef="From2021-01-01to2021-12-31" name="tomz:Basic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_24" contextRef="From2022-01-01to2022-12-31" name="tomz:Diluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.15</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_25" contextRef="From2021-01-01to2021-12-31" name="tomz:Diluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_d2e0b2"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_28" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_29" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,499</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_32" contextRef="From2022-01-01to2022-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,743,544</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_33" contextRef="From2021-01-01to2021-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">17,538,994</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_36" contextRef="From2022-01-01to2022-12-31" name="tomz:WeightedAverageNumberOfDilutedShareOutstanding1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,743,544</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_37" contextRef="From2021-01-01to2021-12-31" name="tomz:WeightedAverageNumberOfDilutedShareOutstanding1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">17,538,994</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Net Income (Loss) Per Common Share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_40" contextRef="From2022-01-01to2022-12-31" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.15</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_41" contextRef="From2021-01-01to2021-12-31" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_44" contextRef="From2022-01-01to2022-12-31" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.15</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_45" contextRef="From2021-01-01to2021-12-31" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares" sign="-">0.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="10" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p></td></tr></tbody></table></ix:continuation></ix:continuation></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-11</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_b2bbf2" continuedAt="cont_f12bc7"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Revenue Recognition</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_998" contextRef="From2022-01-01to2022-12-31" name="us-gaap:RevenueRecognitionPolicyTextBlock" escape="true" continuedAt="cont_320068"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606). We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Title and risk of loss generally pass to our customers upon shipment. Our Customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to bringing about resale. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Disaggregation of Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table presents our revenues disaggregated by revenue source.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1007" contextRef="From2022-01-01to2022-12-31" name="us-gaap:DisaggregationOfRevenueTableTextBlock" escape="true" continuedAt="cont_1ce2e4"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_64" contextRef="From2022-01-01to2022-12-31_tomz_SteraMistPRoductMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,864,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_49" contextRef="From2021-01-01to2021-12-31_tomz_SteraMistPRoductMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,179,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1113" contextRef="From2022-01-01to2022-12-31_tomz_SteraMistPRoductMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">685,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_65" contextRef="From2022-01-01to2022-12-31_tomz_ServiceAndTrainingMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,474,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_67" contextRef="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,575,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1112" contextRef="From2022-01-01to2022-12-31_tomz_ServiceAndTrainingMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">101,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1111" contextRef="From2022-01-01to2022-12-31" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">584,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Revenue by Geographic Region</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_1ce2e4"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_69" contextRef="From2022-01-01to2022-12-31_tomz_UnitedStatesMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,261,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_74" contextRef="From2021-01-01to2021-12-31_tomz_UnitedStatesMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,403,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1114" contextRef="From2022-01-01to2022-12-31_tomz_UnitedStatesMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">142,000</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_70" contextRef="From2022-01-01to2022-12-31_tomz_InternationalMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,077,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_73" contextRef="From2021-01-01to2021-12-31_tomz_InternationalMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,351,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1115" contextRef="From2022-01-01to2022-12-31_tomz_InternationalMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">726,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_71" contextRef="From2022-01-01to2022-12-31_tomz_GeographicRegionMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">8,338,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_72" contextRef="From2021-01-01to2021-12-31_tomz_GeographicRegionMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,754,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1116" contextRef="From2022-01-01to2022-12-31_tomz_GeographicRegionMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">584,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Product revenue includes sales from our standard and customized equipment, solution and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Costs to Obtain a Contract with a Customer</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-12</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_f12bc7" continuedAt="cont_8bc8a7"><ix:continuation id="cont_320068"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Contract Balances</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, and December 31, 2021 we did not have any unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Arrangements with Multiple Performance Obligations</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Significant Judgments</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Equity Compensation Expense</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_999" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation&#8212;Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#8211;free interest rates are calculated based on continuously compounded risk&#8211;free rates for the appropriate term.&#160;The expected term of the Company's warrants has been determined utilizing the "simplified" method for awards that qualify as "plain-vanilla" warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its Common Stock and does not intend to pay dividends on its Common Stock in the foreseeable future. The expected forfeiture rate is estimated based on management&#8217;s best assessment.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On July 7, 2017, our shareholders approved the 2016 Equity Incentive Plan, or the 2016 Plan. The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to <ix:nonFraction id="fid_116" contextRef="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember" name="us-gaap:CommonStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,000,000</ix:nonFraction> shares of common stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of common stock for numerous reasons, including, but not limited to, shares of common stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. For the year ended December 31, 2022 and 2021, we issued <ix:nonFraction id="fid_117" contextRef="From2022-01-01to2022-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember" name="tomz:CommonStockSharesIssuedVested" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">51,750</ix:nonFraction> and <ix:nonFraction id="fid_123" contextRef="From2021-01-01to2021-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember" name="tomz:CommonStockSharesIssuedVested" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction> shares of common stock, respectively, out of the 2016 Plan.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Concentrations of Credit Risk</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1000" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ConcentrationRiskCreditRisk" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $<ix:nonFraction id="fid_93" contextRef="From2022-01-01to2022-12-31" name="us-gaap:FederalDepositInsuranceCorporationPremiumExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">250,000</ix:nonFraction> at times during the year.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Long-Lived Assets Including Acquired Intangible Assets</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1001" contextRef="From2022-01-01to2022-12-31" name="tomz:LonglivedAssetsIncludingAcquiredIntangibleAssets" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the years ended December 31, 2022 and 2021.</p></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-13</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_8bc8a7"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Advertising and Promotional Expenses</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1002" contextRef="From2022-01-01to2022-12-31" name="us-gaap:AdvertisingCostsPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We expense advertising costs in the period in which they are incurred. Advertising and promotional expenses included in selling expenses for the years ended December 31, 2022 and 2021 were approximately $<ix:nonFraction id="fid_85" contextRef="From2022-01-01to2022-12-31" name="us-gaap:AdvertisingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">653,000</ix:nonFraction> and $<ix:nonFraction id="fid_87" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AdvertisingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">701,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Research and Development Expenses</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1003" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ResearchAndDevelopmentExpensePolicy" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2022 and 2021, research and development expenses were approximately $<ix:nonFraction id="fid_89" contextRef="From2022-01-01to2022-12-31" name="tomz:ResearchAndDevelopmentsExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">352,000</ix:nonFraction> and $<ix:nonFraction id="fid_91" contextRef="From2021-01-01to2021-12-31" name="tomz:ResearchAndDevelopmentsExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">573,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Business Segments</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1004" contextRef="From2022-01-01to2022-12-31" name="us-gaap:BusinessCombinationsPolicy" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product. A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Recent Accounting Pronouncements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1005" contextRef="From2022-01-01to2022-12-31" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In March 2022, the FASB issued ASU 2022-02, Troubled Debt Restructurings and Vintage Disclosures. This ASU eliminates the accounting guidance for troubled debt restructurings by creditors that have adopted ASU 2016-13, Measurement of Credit Losses on Financial Instruments, which we adopted on January 1, 2020. This ASU also enhances the disclosure requirements for certain loan refinancing and restructurings by creditors when a borrower is experiencing financial difficulty. In addition, the ASU amends the guidance on vintage disclosures to require entities to disclose current period gross write-offs by year of origination for financing receivables and net investments in leases within the scope of ASC 326-20. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU would be applied prospectively. Early adoption is also permitted, including adoption in an interim period. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In October 2021, the FASB issued ASU No. 2021-08, Accounting for Contract Assets and Contract Liabilities from Contracts with Customers (Topic 805). This ASU requires an acquirer in a business combination to recognize and measure contract assets and contract liabilities (deferred revenue) from acquired contracts using the revenue recognition guidance in Topic 606. At the acquisition date, the acquirer applies the revenue model as if it had originated the acquired contracts. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU should be applied prospectively. Early adoption is also permitted, including adoption in an interim period. If early adopted, the amendments are applied retrospectively to all business combinations for which the acquisition date occurred during the fiscal year of adoption. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently adopted accounting pronouncements</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In November 2021, the FASB issued ASU No. 2021-10, Government Assistance (Topic 832). This ASU requires business entities to disclose information about government assistance they receive if the transactions were accounted for by analogy to either a grant or a contribution accounting model. The disclosure requirements include the nature of the transaction and the related accounting policy used, the line items on the balance sheets and statements of operations that are affected and the amounts applicable to each financial statement line item and the significant terms and conditions of the transactions. The ASU is effective for annual periods beginning after December 15, 2021. We adopted ASU 2021-10 starting in 2022, which did not have a material impact on our consolidated financial statements.</p></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-14</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_967" contextRef="From2022-01-01to2022-12-31" name="us-gaap:InventoryDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 3. INVENTORIES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </strong>Inventories consist of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1008" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Finished goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_124" contextRef="AsOf2022-12-31" name="us-gaap:InventoryFinishedGoods" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,929,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_125" contextRef="AsOf2021-12-31" name="us-gaap:InventoryFinishedGoods" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,293,080</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Raw Materials</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_126" contextRef="AsOf2022-12-31" name="us-gaap:InventoryRawMaterials" format="ixt:numdotdecimal" decimals="0" unitRef="USD">691,999</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_127" contextRef="AsOf2021-12-31" name="us-gaap:InventoryRawMaterials" format="ixt:numdotdecimal" decimals="0" unitRef="USD">377,490</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_130" contextRef="AsOf2022-12-31" name="us-gaap:InventoryValuationReserves" format="ixt:numdotdecimal" decimals="0" unitRef="USD">95,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_131" contextRef="AsOf2021-12-31" name="us-gaap:InventoryValuationReserves" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_128" contextRef="AsOf2022-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,495,999</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_129" contextRef="AsOf2021-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,743,280</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_968" contextRef="From2022-01-01to2022-12-31" name="tomz:VendorDepositsTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 4. VENDOR DEPOSITS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On December 31, 2022 and December 31, 2021, we maintained vendor deposits of $<ix:nonFraction id="fid_132" contextRef="AsOf2022-12-31" name="us-gaap:Deposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD">447,052</ix:nonFraction> and $<ix:nonFraction id="fid_133" contextRef="AsOf2021-12-31" name="us-gaap:Deposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD">288,586</ix:nonFraction>, respectively, for open purchase orders for inventory.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_969" contextRef="From2022-01-01to2022-12-31" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 5. PROPERTY AND EQUIPMENT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Property and equipment consist of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1009" contextRef="From2022-01-01to2022-12-31" name="us-gaap:PropertyPlantAndEquipmentTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_134" contextRef="AsOf2022-12-31" name="us-gaap:FurnitureAndFixturesGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">364,819</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_135" contextRef="AsOf2021-12-31" name="us-gaap:FurnitureAndFixturesGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">357,236</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_136" contextRef="AsOf2022-12-31" name="tomz:Equipments" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,236,510</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_137" contextRef="AsOf2021-12-31" name="tomz:Equipments" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,688,236</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vehicles</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_138" contextRef="AsOf2022-12-31" name="us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles" format="ixt:numdotdecimal" decimals="0" unitRef="USD">60,703</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_139" contextRef="AsOf2021-12-31" name="us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles" format="ixt:numdotdecimal" decimals="0" unitRef="USD">60,703</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer and software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_140" contextRef="AsOf2022-12-31" name="tomz:ComputerSoftware" format="ixt:numdotdecimal" decimals="0" unitRef="USD">246,638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_141" contextRef="AsOf2021-12-31" name="tomz:ComputerSoftware" format="ixt:numdotdecimal" decimals="0" unitRef="USD">232,017</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_142" contextRef="AsOf2022-12-31" name="us-gaap:LeaseholdImprovementsGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">393,381</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_143" contextRef="AsOf2021-12-31" name="us-gaap:LeaseholdImprovementsGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">386,120</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tenant Improvement Allowance&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_144" contextRef="AsOf2022-12-31" name="us-gaap:ConstructionInProgressGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">405,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_145" contextRef="AsOf2021-12-31" name="us-gaap:ConstructionInProgressGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">405,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Costs in Progress &#8211; Tooling and Molds</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_146" contextRef="AsOf2022-12-31" name="us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_147" contextRef="AsOf2021-12-31" name="us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">376,864</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_148" contextRef="AsOf2022-12-31" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,707,051</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_149" contextRef="AsOf2021-12-31" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,506,176</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated depreciation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_150" contextRef="AsOf2022-12-31" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,371,720</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_151" contextRef="AsOf2021-12-31" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,017,857</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Property and Equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_152" contextRef="AsOf2022-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,335,331</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_153" contextRef="AsOf2021-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,488,319</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">For the years ended December 31, 2022 and 2021, depreciation was $<ix:nonFraction id="fid_155" contextRef="From2022-01-01to2022-12-31" name="us-gaap:Depreciation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">314,669</ix:nonFraction> and $<ix:nonFraction id="fid_157" contextRef="From2021-01-01to2021-12-31" name="us-gaap:Depreciation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">299,665</ix:nonFraction>, respectively. For the years ended December 31, 2022 and 2021, amortization of tenant improvement allowance was $<ix:nonFraction id="fid_159" contextRef="From2022-01-01to2022-12-31" name="tomz:AmortizationOfTenantImprovementAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">39,194</ix:nonFraction> and was recorded as lease expense and included within general and administrative expense on the consolidated statement of operations.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_970" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IntangibleAssetsDisclosureTextBlock" escape="true" continuedAt="cont_3df560"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 6. INTANGIBLE ASSETS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Intangible assets consist of patents and trademarks related to our Binary Ionization Technology. We amortize the patents over the estimated remaining lives of the related patents. The trademarks have an indefinite life. Amortization expense was $<ix:nonFraction id="fid_180" contextRef="From2022-01-01to2022-12-31" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,495</ix:nonFraction> and $<ix:nonFraction id="fid_182" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,406</ix:nonFraction> for the years ended December 31, 2022 and 2021, respectively. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Definite life intangible assets consist of the following: </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1010" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Intellectual Property and Patents </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_161" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,108,063</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_162" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,065,584</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Less: Accumulated Amortization </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_163" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,882,892</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_164" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,868,397</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Patents, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_165" contextRef="AsOf2022-12-31" name="tomz:IntangibleAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">225,171</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_166" contextRef="AsOf2021-12-31" name="tomz:IntangibleAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">197,187</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Indefinite life intangible assets consist of the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1011" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Trademarks</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_167" contextRef="AsOf2022-12-31" name="us-gaap:IndefiniteLivedTrademarks" format="ixt:numdotdecimal" decimals="0" unitRef="USD">800,565</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_168" contextRef="AsOf2021-12-31" name="us-gaap:IndefiniteLivedTrademarks" format="ixt:numdotdecimal" decimals="0" unitRef="USD">759,097</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Total Intangible Assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_169" contextRef="AsOf2022-12-31" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,025,736</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_170" contextRef="AsOf2021-12-31" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:numdotdecimal" decimals="0" unitRef="USD">956,284</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-15</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_3df560"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Approximate future amortization is as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Approximate future amortization is as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><ix:nonNumeric id="fid_1012" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended</strong><strong>:&#160;</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;<strong>&#160;&#160;&#160;&#160;Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_172" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_173" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_174" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_175" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_176" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">152,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_177" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_178" contextRef="AsOf2022-12-31" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">197,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_971" contextRef="From2022-01-01to2022-12-31" name="us-gaap:LeasesOfLesseeDisclosureTextBlock" escape="true" continuedAt="cont_98a940"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 7. LEASES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In April 2018, we entered into a <ix:nonNumeric id="fid_219" contextRef="From2022-01-01to2022-12-31" name="tomz:TermLease" format="ixt-sec:duryear">10</ix:nonNumeric>-year lease agreement for a new <ix:nonFraction id="fid_220" contextRef="AsOf2018-04-30" name="us-gaap:AreaOfLand" format="ixt:numdotdecimal" decimals="INF" unitRef="sqft">9,000</ix:nonFraction>-square-foot facility that contains office, warehouse, lab and research and development space in Frederick, Maryland. The lease agreement commenced in December 2018 when the property was ready for occupancy. The agreement provided for annual rent of $<ix:nonFraction id="fid_221" contextRef="From2018-04-01to2018-04-30" name="us-gaap:OperatingLeasesRentExpenseNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">143,460</ix:nonFraction>, an escalation clause that increases the rent <ix:nonFraction id="fid_222" contextRef="From2018-04-01to2018-04-30" name="tomz:MaximumIncreasesRentPercentage" decimals="INF" unitRef="Pure" scale="-2">3</ix:nonFraction>% year over year, a landlord tenant improvement allowance of $<ix:nonFraction id="fid_224" contextRef="From2018-04-01to2018-04-30" name="us-gaap:PaymentsForProceedsFromTenantAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">405,000</ix:nonFraction> and additional landlord work as discussed in the lease agreement. We took occupancy of the property on December 17, 2018 and the lease was amended in March 2019 to provide for a 4-month rent holiday and a commencement date of April 1, 2019.&#160; A <ix:nonFraction id="fid_223" contextRef="From2018-04-01to2018-04-30" name="us-gaap:WorkersCompensationDiscountPercent" decimals="INF" unitRef="Pure" scale="-2">7</ix:nonFraction>% discount rate was determined using used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&#160; Lease expense for operating lease payments is recognized on a straight-line basis over the lease term. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The balances for our operating lease where we are the lessee are presented as follows within our consolidated balance sheet:</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><ix:nonNumeric id="fid_1013" contextRef="From2022-01-01to2022-12-31" name="us-gaap:LeaseCostTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Operating leases:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Assets:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="MARGIN: 0px 0px 0px 15px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_184" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" decimals="0" unitRef="USD">528,996</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_185" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" decimals="0" unitRef="USD">583,271</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Liabilities:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_187" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">100,282</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_188" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">91,775</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, Net of Current Portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_189" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">761,132</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_190" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">861,415</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_191" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiability" format="ixt:numdotdecimal" decimals="0" unitRef="USD">861,414</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_192" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiability" format="ixt:numdotdecimal" decimals="0" unitRef="USD">953,190</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The components of lease expense are as follows within our consolidated statement of operations:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1014" contextRef="From2022-01-01to2022-12-31" name="tomz:OperatingLeaseLiabilityTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_195" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OperatingLeaseExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">157,315</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_196" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OperatingLeaseExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">157,315</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Other information related to leases where we are the lessee is as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1015" contextRef="From2022-01-01to2022-12-31" name="tomz:LeaseOtherInformationTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="9"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average remaining lease term:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;<ix:nonNumeric id="fid_197" contextRef="From2022-01-01to2022-12-31" name="tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm">6.00</ix:nonNumeric> years&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;<ix:nonNumeric id="fid_198" contextRef="From2021-01-01to2021-12-31" name="tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm">7.00</ix:nonNumeric> years&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Discount rate:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_199" contextRef="AsOf2022-09-30" name="us-gaap:LesseeOperatingLeaseDiscountRate" decimals="INF" unitRef="Pure" scale="-2">7.00</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_200" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseDiscountRate" decimals="INF" unitRef="Pure" scale="-2">7.00</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Supplemental cash flow information related to leases where we are the lessee is as follows:</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-16</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_98a940"><ix:nonNumeric id="fid_1016" contextRef="From2022-01-01to2022-12-31" name="tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_203" contextRef="From2022-01-01to2022-12-31" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" format="ixt:numdotdecimal" decimals="0" unitRef="USD">155,621</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_204" contextRef="From2021-01-01to2021-12-31" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" format="ixt:numdotdecimal" decimals="0" unitRef="USD">151,088</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">As of December 31, 2022, the maturities of our operating lease liability are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1017" contextRef="From2022-01-01to2022-12-31" name="us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Operating</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lease</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_205" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:numdotdecimal" decimals="0" unitRef="USD">160,290</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_206" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:numdotdecimal" decimals="0" unitRef="USD">165,098</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_207" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:numdotdecimal" decimals="0" unitRef="USD">170,051</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_208" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:numdotdecimal" decimals="0" unitRef="USD">175,153</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_209" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">180,407</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_210" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">219,571</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total minimum lease payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_211" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,070,571</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less:&#160; Interest </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_212" contextRef="AsOf2022-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">209,156</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Present value of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_213" contextRef="AsOf2022-12-31" name="us-gaap:CapitalLeaseObligationsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">861,415</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Current portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_215" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">100,282</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term portion of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_217" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">761,132</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_972" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 8. CAPITALIZED SOFTWARE DEVELOPMENT COSTS</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In accordance with ASC 985-20 we capitalized certain software development costs associated with updating our continuing line of product offerings. Capitalized software development costs consist of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1018" contextRef="From2022-01-01to2022-12-31" name="tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;&#160;&#160; December 31,</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_333" contextRef="AsOf2022-12-31" name="us-gaap:CapitalizedComputerSoftwareGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">125,704</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_332" contextRef="AsOf2021-12-31" name="us-gaap:CapitalizedComputerSoftwareGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">125,704</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less:&#160; Accumulated Amortization </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_335" contextRef="AsOf2022-12-31" name="us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">125,704</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_334" contextRef="AsOf2021-12-31" name="us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">115,229</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs - net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_337" contextRef="AsOf2022-12-31" name="us-gaap:CapitalizedComputerSoftwareNet" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_336" contextRef="AsOf2021-12-31" name="us-gaap:CapitalizedComputerSoftwareNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,475</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Amortization expense for the years ended December 31, 2022 and 2021 was $<ix:nonFraction id="fid_339" contextRef="From2022-01-01to2022-12-31" name="tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,475</ix:nonFraction> and $<ix:nonFraction id="fid_338" contextRef="From2021-01-01to2021-12-31" name="tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,900</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_973" contextRef="From2022-01-01to2022-12-31" name="tomz:CloudComputingServiceContractDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 9. </strong><strong>CLOUD COMPUTING SERVICE CONTRACT</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">In May 2020 we entered into a cloud computing service contract with a vendor. The contract provides for annual payments in the amount of $<ix:nonFraction id="fid_340" contextRef="From2021-05-01to2021-05-31" name="tomz:ProceedsFromServiceContractOfReceivables" format="ixt:numdotdecimal" decimals="0" unitRef="USD">30,409</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_341" contextRef="From2022-01-01to2022-12-31" name="tomz:AnnualPaymentsOnContractTerm" format="ixt-sec:duryear">5</ix:nonNumeric> years. The annual contract payments are capitalized as a prepaid expense and amortized over a twelve-month period.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We have incurred implementation costs of $<ix:nonFraction id="fid_344" contextRef="AsOf2022-12-31" name="us-gaap:PrepaidExpenseAndOtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">66,857</ix:nonFraction> in connection with the cloud computing service contract which have been capitalized in prepaid expenses and other assets as of December 31, 2022. In accordance with ASU No. 2018-15, such implementation costs are being amortized over the remaining contract terms beginning January 1, 2021, which was when the cloud-based service contract was placed in service. Amortization expense for the years ended December 31, 2022 and 2021 were $<ix:nonFraction id="fid_342" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,495</ix:nonFraction> and $<ix:nonFraction id="fid_343" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,432</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_974" contextRef="From2022-01-01to2022-12-31" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" escape="true" continuedAt="cont_8f4dbb"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 10. SHAREHOLDERS&#8217; EQUITY</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our Board of Directors (the &#8220;Board&#8221;) may, without further action by our shareholders, from time to time, direct the issuance of any authorized but unissued or unreserved shares of preferred stock in series and at the time of issuance, determine the rights, preferences and limitations of each series. The holders of such preferred stock may be entitled to receive a preference payment in the event of any liquidation, dissolution or winding-up by us before any payment is made to the holders of our common stock. Furthermore, the Board could issue preferred stock with voting and other rights that could adversely affect the voting power of the holders of our common stock.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-17</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_8f4dbb" continuedAt="cont_fbc3a7"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Convertible Series A Preferred Stock</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our authorized Convertible Series A Preferred Stock, $<ix:nonFraction id="fid_1044" contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockParOrStatedValuePerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.01</ix:nonFraction> par value, consists of <ix:nonFraction id="fid_1127" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,000,000</ix:nonFraction> shares. At December 31, 2022 and 2021, there were <ix:nonFraction id="fid_1046" contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockSharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">63,750</ix:nonFraction> shares issued and outstanding. The Convertible Series A Preferred Stock is convertible at the rate of one share of common stock for one share of Convertible Series A Preferred Stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Convertible Series B Preferred Stock</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of <ix:nonFraction id="fid_1048" contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">4,000</ix:nonFraction> shares. At December 31, 2022 and 2021, there were no shares issued and outstanding, respectively. Each share of Convertible Series B Preferred Stock may be converted (at the holder&#8217;s election) into two hundred shares of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Common Stock</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">In January 2021, we issued 50,000 shares of common stock valued at approximately $<ix:nonFraction id="fid_1051" contextRef="AsOf2022-12-31_tomz_JanuaryTwentyTwentyTwoMember" name="us-gaap:CommonStockValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">228,000</ix:nonFraction> to members of our Board (see Note 12).&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In September 2021, we sold <ix:nonFraction id="fid_1030" contextRef="AsOf2021-09-30" name="tomz:CommonStockShareSold" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,869,442</ix:nonFraction> shares of common stock through a registered direct offering and issued <ix:nonFraction id="fid_1031" contextRef="AsOf2021-09-30" name="tomz:IssuedWarrantsInConcurrentPrivatePlacement" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,434,721</ix:nonFraction> warrants to purchase common stock in a concurrent private placement. We received net proceeds from the transaction of $<ix:nonFraction id="fid_1049" contextRef="From2021-09-01to2021-09-30" name="us-gaap:ProceedsFromIssuanceOfWarrants" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,581,651</ix:nonFraction>, after deducting the placement agent&#8217;s fees and other estimated offering expenses. The Warrants have an exercise price of $<ix:nonFraction id="fid_1035" contextRef="AsOf2021-09-30" name="tomz:ExercisePriceOfWarrant" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.68</ix:nonFraction> per share, are exercisable immediately upon issuance and have a term of five years from the date of issuance. In addition, we issued <ix:nonFraction id="fid_1032" contextRef="AsOf2021-09-30" name="tomz:IssuedWarrantsInConcurrentPlacementAgent" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">172,167</ix:nonFraction> warrants to the placement agent which have a term of five years and an exercise price of $<ix:nonFraction id="fid_1033" contextRef="From2021-09-01to2021-09-30" name="tomz:TermsOfOutstandingWarrantsToPurchase" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.18</ix:nonFraction> per share. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">In January 2022, we issued <ix:nonFraction id="fid_1050" contextRef="From2022-01-01to2022-12-31_tomz_JanuaryTwentyTwentyTwoMember" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">51,750</ix:nonFraction> shares of common stock valued at approximately $54,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Stock Options</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160; In January 2022 we issued an option to purchase <ix:nonFraction id="fid_1053" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">172,500</ix:nonFraction> shares of common stock to our Chief Executive Officer at an exercise price of $<ix:nonFraction id="fid_1061" contextRef="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.12</ix:nonFraction> per share pursuant to an employment agreement. The option was valued at $<ix:nonFraction id="fid_1055" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:FairValueOfStockOption" format="ixt:numdotdecimal" decimals="0" unitRef="USD">178,281</ix:nonFraction> and has a contractual term of <ix:nonNumeric id="fid_1060" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" format="ixt-sec:duryear">10</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, <ix:nonFraction id="fid_1057" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">156</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1058" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1059" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.65</ix:nonFraction>%; and an expected life of <ix:nonNumeric id="fid_1056" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">5</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1054" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.03</ix:nonFraction>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2022 we issued an option to purchase 57,500 shares of common stock to our Chief Operating Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $59,427 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2022 we issued an option to purchase <ix:nonFraction id="fid_1062" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">40,000</ix:nonFraction> shares of common stock to our Chief Financial Officer at an exercise price of $<ix:nonFraction id="fid_1063" contextRef="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.12</ix:nonFraction> per share pursuant to an employment agreement. The option was valued at $<ix:nonFraction id="fid_1064" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="tomz:FairValueOfStockOption" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,340</ix:nonFraction> and has a contractual term of <ix:nonNumeric id="fid_1065" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" format="ixt-sec:duryear">10</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, <ix:nonFraction id="fid_1066" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">156</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1067" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1068" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.65</ix:nonFraction>%; and an expected life of <ix:nonNumeric id="fid_1069" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">5</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1070" contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.03</ix:nonFraction>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">The following table summarizes stock options outstanding as of December 31, 2022 and 2021:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1019" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2022</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_367" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" name="tomz:OutstandingBeginningOfPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">143,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_378" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceOutstandingBeginningBalance" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.66</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_366" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:OutstandingBeginningOfPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">132,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_377" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceOutstandingBeginningBalance" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.72</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_369" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">270,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_380" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceGranted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.12</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_368" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">10,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_379" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceGranted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.93</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_375" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" name="tomz:OutstandingEndOfPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">413,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_386" contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceOutstandingEndingBalance" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.65</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_374" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:OutstandingEndOfPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">143,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_385" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceOutstandingEndingBalance" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.66</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-18</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_fbc3a7" continuedAt="cont_0d70f1"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Options outstanding and exercisable by price range as of December 31, 2022 were as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1020" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong><strong>Weighted</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Range</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining </strong><strong>Contractual </strong><strong>Life in Years</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted </strong><strong>Average </strong><strong>Exercise Price</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td style="width:17%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_387" contextRef="AsOf2022-12-31_tomz_RangeOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">27,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_394" contextRef="From2022-01-01to2022-12-31_tomz_RangeOneMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.20</ix:nonNumeric></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_401" contextRef="AsOf2022-12-31_tomz_RangeOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">27,500</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_408" contextRef="AsOf2022-12-31_tomz_RangeOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.80</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.88</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_388" contextRef="AsOf2022-12-31_tomz_RangeEightMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_395" contextRef="From2022-01-01to2022-12-31_tomz_RangeTwoMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.01</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_402" contextRef="AsOf2022-12-31_tomz_RangeEightMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_409" contextRef="AsOf2022-12-31_tomz_RangeTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.88</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_389" contextRef="AsOf2022-12-31_tomz_RangeThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">25,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_396" contextRef="From2022-01-01to2022-12-31_tomz_RangeThreeMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.02</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_403" contextRef="AsOf2022-12-31_tomz_RangeThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">25,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_410" contextRef="AsOf2022-12-31_tomz_RangeThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.96</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1121" contextRef="AsOf2022-12-31_tomz_RangeNineMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">270,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1120" contextRef="From2022-01-01to2022-12-31_tomz_RangeNineMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">9.06</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1119" contextRef="AsOf2022-12-31_tomz_RangeNineMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">270,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1118" contextRef="AsOf2022-12-31_tomz_RangeNineMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.12</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.93</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_390" contextRef="AsOf2022-12-31_tomz_RangeFourMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">10,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_397" contextRef="From2022-01-01to2022-12-31_tomz_RangeFourMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">4.06</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_404" contextRef="AsOf2022-12-31_tomz_RangeFourMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">10,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_411" contextRef="AsOf2022-12-31_tomz_RangeFourMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.93</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.16</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_391" contextRef="AsOf2022-12-31_tomz_RangeFiveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">5,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_398" contextRef="From2022-01-01to2022-12-31_tomz_RangeFiveMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.00</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_405" contextRef="AsOf2022-12-31_tomz_RangeFiveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">5,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_412" contextRef="AsOf2022-12-31_tomz_RangeFiveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.16</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.40</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_392" contextRef="AsOf2022-12-31_tomz_RangeSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">12,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_399" contextRef="From2022-01-01to2022-12-31_tomz_RangeSevenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.05</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_406" contextRef="AsOf2022-12-31_tomz_RangeSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">12,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_413" contextRef="AsOf2022-12-31_tomz_RangeSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.40</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.06</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_393" contextRef="AsOf2022-12-31_tomz_RangeTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_400" contextRef="From2022-01-01to2022-12-31_tomz_RangeEightMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.75</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_407" contextRef="AsOf2022-12-31_tomz_RangeTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_414" contextRef="AsOf2022-12-31_tomz_RangeEightMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">7.06</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1130" contextRef="AsOf2022-12-31" name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">413,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1129" contextRef="From2022-01-01to2022-12-31" name="tomz:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">6.63</ix:nonNumeric></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1128" contextRef="AsOf2022-12-31" name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">413,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_418" contextRef="AsOf2022-12-31" name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.65</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Stock Warrants</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On February 11, 2021, we agreed to amend (the &#8220;Warrant Amendment&#8221;) the warrant to purchase <ix:nonFraction id="fid_1040" contextRef="From2021-02-01to2021-02-11" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">125,000</ix:nonFraction> shares of TOMI common stock, par value $0.01 (the &#8220;Common Stock&#8221;), issued by TOMI to Dr. Halden S. Shane, TOMI&#8217;s Chief Executive Officer and a director on TOMI&#8217;s board of directors, on February 11, 2014 (the &#8220;Warrant&#8221;), to provide TOMI an option to repurchase the Warrant from Dr. Shane at a negotiated price. <ix:nonNumeric id="fid_1038" contextRef="From2021-02-01to2021-02-11" name="tomz:WarrantAmendmentDescription">In connection with the Warrant Amendment, TOMI repurchased the warrant from Dr. Shane (the &#8220;Repurchase&#8221;) for an aggregate cash consideration of $314,500, representing a 15% discount of the net exercise cash value of the Warrant, which was calculated using the closing price of the Common Stock on the Nasdaq on February 11, 2021 of $5.36, less the exercise price of the warrants in the amount of $2.40. On the same date, the Warrant Amendment and the Repurchase was considered, approved and adopted by a disinterested majority of TOMI&#8217;s board of directors.</ix:nonNumeric>&#160; The $<ix:nonFraction id="fid_1039" contextRef="AsOf2021-02-11" name="tomz:AggregateCashConsideration" format="ixt:numdotdecimal" decimals="0" unitRef="USD">314,500</ix:nonFraction> charge in connection with the warrant amendment has been included in General and Administrative expenses for the year ended December 31, 2021.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In September 2021, we issued 1,434,721 warrants in a private placement in connection with the sale common stock through a registered direct offering.&#160; The Warrants are exercisable at an exercise price of $1.68 per share, are exercisable immediately upon issuance and have a term of exercise equal to five years from the date of issuance. In addition, we issued <ix:nonFraction id="fid_1045" contextRef="AsOf2021-09-30_tomz_PlacementAgentMember" name="us-gaap:WarrantsAndRightsOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="USD">172,167</ix:nonFraction> warrants to the placement agent which have a term of five years and an exercise price of $<ix:nonFraction id="fid_1037" contextRef="AsOf2021-09-30_tomz_PlacementAgentMember" name="tomz:ExercisePriceOfWarrant" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.18</ix:nonFraction>. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In November 2022, we modified the terms of Dr. Halden S. Shane's, TOMI's Chief Executive Officer and a director on TOMI's board of directors, outstanding warrants to purchase <ix:nonFraction id="fid_1071" contextRef="From2022-11-01to2022-11-30" name="tomz:TermsOfOutstandingWarrantsToPurchase" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">593,750</ix:nonFraction> shares of common stock.&#160; The terms of the warrants were increased by <ix:nonNumeric id="fid_1072" contextRef="From2022-11-01to2022-11-30" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" format="ixt-sec:duryear">10</ix:nonNumeric> years.&#160; Pursuant to ASC 718, the modified terms of the warrants resulted in approximately $<ix:nonFraction id="fid_1073" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ShareBasedCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">356,000</ix:nonFraction> in incremental equity compensation expense for the year ended December 31, 2022.&#160; We utilized the Black-Scholes method to fair value the warrants under the original and modified terms with the following range of assumptions: volatility, <ix:nonFraction id="fid_1074" contextRef="From2022-11-01to2022-11-30_srt_MinimumMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">83</ix:nonFraction>%-<ix:nonFraction id="fid_1075" contextRef="From2022-11-01to2022-11-30_srt_MaximumMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">163</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1076" contextRef="From2022-11-01to2022-11-30" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1077" contextRef="From2022-11-01to2022-11-30" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">4.31</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1079" contextRef="From2022-11-01to2022-11-30_srt_MinimumMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">0.12</ix:nonNumeric> - <ix:nonNumeric id="fid_1078" contextRef="From2022-11-01to2022-11-30_srt_MaximumMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">11.23</ix:nonNumeric> years, respectively. The grant date fair value range of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1080" contextRef="From2022-11-01to2022-11-30_srt_MinimumMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.17</ix:nonFraction> through $<ix:nonFraction id="fid_1081" contextRef="From2022-11-01to2022-11-30_srt_MaximumMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.65</ix:nonFraction>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table summarizes the outstanding common stock warrants as of December 31, 2022 and 2021:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1021" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2022</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_423" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">3,381,021</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_436" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.22</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_422" contextRef="AsOf2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,049,133</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_435" contextRef="AsOf2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.55</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_425" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,606,888</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_438" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.73</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_444" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember" name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares" sign="-">31,250</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_439" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.21</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_427" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">557,436</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_441" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.23</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_428" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">262,500</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_442" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.65</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_445" contextRef="AsOf2022-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,792,335</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_446" contextRef="AsOf2022-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_430" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">3,381,021</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_443" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.22</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-19</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_0d70f1"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Warrants outstanding and exercisable by price range as of December 31, 2022 were as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1022" contextRef="From2022-01-01to2022-12-31" name="tomz:WarrantsOutstandingAndExercisableByPriceRange" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><strong>Average Weighted</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td style="width:17%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.64</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_447" contextRef="AsOf2022-12-31_tomz_WarrantsOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_503" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsOneMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">10.89</ix:nonNumeric></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_475" contextRef="AsOf2022-12-31_tomz_WarrantsOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_489" contextRef="AsOf2022-12-31_tomz_WarrantsOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.64</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_448" contextRef="AsOf2022-12-31_tomz_WarrantsTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">125,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_504" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsTwoMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">11.08</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_476" contextRef="AsOf2022-12-31_tomz_WarrantsTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">125,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_490" contextRef="AsOf2022-12-31_tomz_WarrantsTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.80</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_449" contextRef="AsOf2022-12-31_tomz_WarrantsThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">442,708</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_505" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsThreeMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">9.98</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_477" contextRef="AsOf2022-12-31_tomz_WarrantsThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">442,708</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_491" contextRef="AsOf2022-12-31_tomz_WarrantsThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.96</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_450" contextRef="AsOf2022-12-31_tomz_WarrantsFourMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">6,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_506" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsFourMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.30</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_478" contextRef="AsOf2022-12-31_tomz_WarrantsFourMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">6,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_492" contextRef="AsOf2022-12-31_tomz_WarrantsFourMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.12</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.20</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_451" contextRef="AsOf2022-12-31_tomz_WarrantsFiveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">175,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_507" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsFiveMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.88</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_479" contextRef="AsOf2022-12-31_tomz_WarrantsFiveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">175,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_493" contextRef="AsOf2022-12-31_tomz_WarrantsFiveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.20</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.68</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_453" contextRef="AsOf2022-12-31_tomz_WarrantsSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,434,721</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_509" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsSevenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.75</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_481" contextRef="AsOf2022-12-31_tomz_WarrantsSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,434,721</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_495" contextRef="AsOf2022-12-31_tomz_WarrantsSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.68</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.18</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_454" contextRef="AsOf2022-12-31_tomz_WarrantsEightMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">172,167</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_510" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsEightMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.75</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_482" contextRef="AsOf2022-12-31_tomz_WarrantsEightMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">172,167</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_496" contextRef="AsOf2022-12-31_tomz_WarrantsEightMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.18</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_456" contextRef="AsOf2022-12-31_tomz_WarrantsTenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">28,750</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_512" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsTenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">7.32</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_484" contextRef="AsOf2022-12-31_tomz_WarrantsTenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">28,750</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_498" contextRef="AsOf2022-12-31_tomz_WarrantsTenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">6.95</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_457" contextRef="AsOf2022-12-31_tomz_WarrantsElevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">375,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_513" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsElevenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">7.75</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_485" contextRef="AsOf2022-12-31_tomz_WarrantsElevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">375,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_499" contextRef="AsOf2022-12-31_tomz_WarrantsElevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">6.95</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">8.40</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_458" contextRef="AsOf2022-12-31_tomz_WarrantsTwelveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,489</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_514" contextRef="From2022-01-01to2022-12-31_tomz_WarrantsTwelveMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">0.63</ix:nonNumeric></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_486" contextRef="AsOf2022-12-31_tomz_WarrantsTwelveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,489</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_500" contextRef="AsOf2022-12-31_tomz_WarrantsTwelveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">8.40</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1125" contextRef="AsOf2022-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,792,335</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1126" contextRef="From2022-01-01to2022-12-31" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">5.58</ix:nonNumeric></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1124" contextRef="AsOf2022-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,792,335</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1123" contextRef="AsOf2022-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.25</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">There were no unvested warrants outstanding as of December 31, 2022.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_975" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 11. COMMITMENTS AND CONTINGENCIES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Legal Contingencies</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We may become a party to litigation in the normal course of business. In the opinion of management, there are no legal matters involving us that would have a material adverse effect upon our financial condition, results of operations or cash flows. In addition, from time to time, we may have to file claims against parties that infringe on our intellectual property.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Product Liability</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">As of December 31, 2022 and 2021, there were no claims against us for product liability.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>COVID-19 Pandemic</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The COVID-19 pandemic has temporarily increased the global demand for disinfection products and services that help prevent the spread and transmission of COVID-19 virus. The Company&#8217;s products have been identified as an essential disinfectant and decontamination vendor by various agencies and countries, which have materially affected its business and results of operations. The Company experienced a substantial increase in demand for our products and services in 2020 due to the pandemic. Throughout 2021, the Company experienced a reduction of demand due to various factors, including the closure of our major customers&#8217; business operations due to the pandemic, which resulted in the suspension of many of its ongoing long-term projects. As the impact of the COVID-19 pandemic began to subside and economic activities gradually return to normal in 2022, customers reallocated their resources elsewhere and reduced their spending on disinfection products, which resulted in lower demand for our products. It is difficult to predict how COVID-19 pandemic will affect the Company&#8217;s financial performance in early 2023, as the global economy gradually reopens, customers adjust and change their operations, and the Company implements new marketing and sales strategies in response.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-20</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_976" contextRef="From2022-01-01to2022-12-31" name="tomz:ContractsAndAgreementsTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 12. CONTRACTS AND AGREEMENTS</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Director Compensation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In December 2017, we increased the annual fee to the members of our Board to $<ix:nonFraction id="fid_354" contextRef="From2017-12-01to2017-12-31_tomz_BoardOfMembersMember" name="us-gaap:PaymentForManagementFee" format="ixt:numdotdecimal" decimals="0" unitRef="USD">40,000</ix:nonFraction>, to be paid in cash on a quarterly basis, with the exception of the audit committee chairperson, whose annual fee we increased to $<ix:nonFraction id="fid_355" contextRef="From2017-12-01to2017-12-31_tomz_CommitteeChairpersonMember" name="us-gaap:PaymentForManagementFee" format="ixt:numdotdecimal" decimals="0" unitRef="USD">45,000</ix:nonFraction>, also to be paid in cash on a quarterly basis. Director compensation also includes the annual issuance of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2021, we issued an aggregate of <ix:nonFraction id="fid_356" contextRef="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction> shares of common stock that were valued at $<ix:nonFraction id="fid_358" contextRef="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" format="ixt:numdotdecimal" decimals="0" unitRef="USD">48,000</ix:nonFraction> to members of our Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2022, we issued an aggregate of <ix:nonFraction id="fid_357" contextRef="From2022-01-01to2022-12-31_tomz_BoardOfMembersMember" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">51,750</ix:nonFraction> shares of common stock that were valued at approximately $<ix:nonFraction id="fid_359" contextRef="From2022-01-01to2022-12-31_tomz_BoardOfMembersMember" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" format="ixt:numdotdecimal" decimals="0" unitRef="USD">54,000</ix:nonFraction> to members of our Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Manufacturing Agreement</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In June 2020 we entered into a manufacturing agreement with Planet Innovation Products, Pty Ltd (&#8220;PI&#8221;).&#160; The agreement does not provide for any minimum purchase commitments and is for a term of <ix:nonNumeric id="fid_349" contextRef="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember" name="tomz:TermOfAgreement">three years</ix:nonNumeric>. The agreement also provides for a warranty against product defects.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Cloud Computing Service Contract</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Cloud Computing Service Contract</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </em></strong>In May 2020 we entered into an agreement with a vendor for a cloud computing service contract. The contract provides for annual payments in the amount of $<ix:nonFraction id="fid_360" contextRef="AsOf2020-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember" name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">30,409</ix:nonFraction> and has a term of 5 years. Approximate minimum future payments under the contract are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><ix:nonNumeric id="fid_1023" contextRef="From2022-01-01to2022-12-31" name="tomz:ApproximateMinimumContractPaymentsTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended</strong><strong>:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_345" contextRef="AsOf2022-12-31" name="us-gaap:ContractualObligationDueInSecondYear" format="ixt:numdotdecimal" decimals="0" unitRef="USD">30,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_346" contextRef="AsOf2022-12-31" name="us-gaap:ContractualObligationDueInThirdYear" format="ixt:numdotdecimal" decimals="0" unitRef="USD">30,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_347" contextRef="AsOf2022-12-31" name="us-gaap:ContractualObligationDueInFourthYear" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_348" contextRef="AsOf2022-12-31" name="us-gaap:ContractualObligation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">60,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 1in; TEXT-INDENT: 0.5in; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_977" contextRef="From2022-01-01to2022-12-31" name="us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_1024" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Accrued expenses and other current liabilities consisted of the following at:</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commissions</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_225" contextRef="AsOf2022-12-31" name="us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">442,805</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_226" contextRef="AsOf2021-12-31" name="us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">228,665</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Payroll and related costs </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_227" contextRef="AsOf2022-12-31" name="us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">136,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_228" contextRef="AsOf2021-12-31" name="us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">241,434</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Director fees&#160;&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_229" contextRef="AsOf2022-12-31" name="tomz:DirectorFeesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">34,650</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_230" contextRef="AsOf2021-12-31" name="tomz:DirectorFeesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">31,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales Tax Payable&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_231" contextRef="AsOf2022-12-31" name="tomz:SalesTaxPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">1,351</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_232" contextRef="AsOf2021-12-31" name="tomz:SalesTaxPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">19,411</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued warranty (Note 14)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_233" contextRef="AsOf2022-12-31" name="us-gaap:ExtendedProductWarrantyAccrualCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_234" contextRef="AsOf2021-12-31" name="us-gaap:ExtendedProductWarrantyAccrualCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_235" contextRef="AsOf2022-12-31" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">48,599</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_236" contextRef="AsOf2021-12-31" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">75,848</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_237" contextRef="AsOf2022-12-31" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">728,703</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_238" contextRef="AsOf2021-12-31" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">664,608</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_978" contextRef="From2022-01-01to2022-12-31" name="us-gaap:GuaranteesTextBlock" escape="true" continuedAt="cont_4fa872"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 14. ACCRUED WARRANTY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. The warranty is generally limited to a refund of the original purchase price of the product or a replacement part. We estimate warranty costs based on historical warranty claim experience.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-21</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_4fa872"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; The following table presents warranty reserve activities at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1025" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Beginning accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_239" contextRef="AsOf2021-12-31" name="us-gaap:ExtendedProductWarrantyAccrual" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_240" contextRef="AsOf2020-12-31" name="us-gaap:ExtendedProductWarrantyAccrual" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for warranty expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_242" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease" format="ixt:numdotdecimal" decimals="0" unitRef="USD">24,158</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_243" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease" format="ixt:numdotdecimal" decimals="0" unitRef="USD">75,618</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Settlement of warranty claims</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_244" contextRef="From2022-01-01to2022-12-31" name="tomz:SettlementOfWarrantyClaims" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">24,158</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_245" contextRef="From2021-01-01to2021-12-31" name="tomz:SettlementOfWarrantyClaims" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">75,618</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Ending accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_249" contextRef="AsOf2022-12-31" name="us-gaap:ExtendedProductWarrantyAccrual" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_246" contextRef="AsOf2021-12-31" name="us-gaap:ExtendedProductWarrantyAccrual" format="ixt:numdotdecimal" decimals="0" unitRef="USD">68,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_980" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxDisclosureTextBlock" escape="true" continuedAt="cont_47b5cd"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 15. INCOME TAXES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1026" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The Company&#8217;s income tax expense (benefit) consisted of:</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Federal</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_251" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_252" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">State</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_253" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_254" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">74,000</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_255" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_256" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_257" contextRef="From2022-01-01to2022-12-31" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_258" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">74,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">)&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Federal</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_260" contextRef="From2022-01-01to2022-12-31" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_261" contextRef="From2021-01-01to2021-12-31" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">State</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_262" contextRef="From2022-01-01to2022-12-31" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_263" contextRef="From2021-01-01to2021-12-31" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_264" contextRef="From2022-01-01to2022-12-31" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_265" contextRef="From2021-01-01to2021-12-31" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_266" contextRef="From2022-01-01to2022-12-31" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_267" contextRef="From2021-01-01to2021-12-31" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_268" contextRef="From2022-01-01to2022-12-31" name="tomz:ProvisionForIncomeTaxes" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_269" contextRef="From2021-01-01to2021-12-31" name="tomz:ProvisionForIncomeTaxes" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">74,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td></tr></tbody></table></ix:nonNumeric><ix:nonNumeric id="fid_1027" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The Company&#8217;s net income (loss) before income tax consisted of:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">United States</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_270" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;">)</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_329" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,509,585</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_272" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_271" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_274" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,781,060</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_275" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,509,585</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">Our income tax expense differed from the amounts computed by applying the United States statutory corporate income tax rate for the following reasons:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">On December&#160;22, 2017, the 2017 Tax Cuts and Jobs Act (&#8220;Tax Act&#8221;) was enacted into law making significant changes to the Internal Revenue Code. Changes include, but are not limited to, a federal corporate tax rate decrease from 35% to 21% for tax years beginning after December&#160;31, 2017, the transition of U.S. international taxation from a worldwide tax system to a territorial system and a one-time transition tax on the mandatory deemed repatriation of foreign earnings. We are required to recognize the effect of the tax law changes in the period of enactment, such as re-measuring our U.S. deferred tax assets and liabilities as well as reassessing the net realizability of our deferred tax assets and liabilities. The Tax Act did not give rise to any material impact on the consolidated balance sheets and consolidated statements of operations due to our historical loss position and the full valuation allowance on our net U.S. deferred tax assets.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">The reconciliation of taxes at the federal and state statutory rate to our provision for income taxes for the years ended December&#160;31, 2022 and 2021 was as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1028" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (Loss) before income tax</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_276" contextRef="From2022-01-01to2022-12-31" name="tomz:IncomeLossBeforeIncomeTax" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,880,060</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_277" contextRef="From2021-01-01to2021-12-31" name="tomz:IncomeLossBeforeIncomeTax" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,509,585</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US statutory corporate income tax rate</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_279" contextRef="From2022-01-01to2022-12-31" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" decimals="INF" unitRef="Pure" scale="-2">28.00</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_278" contextRef="From2021-01-01to2021-12-31" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" decimals="INF" unitRef="Pure" scale="-2">28.00</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense (benefit) computed at US statutory corporate income tax rate</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_280" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">806,417</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_281" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">1,002,844</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reconciling items:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Change in valuation allowance on deferred tax assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_283" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">553,005</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_284" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,334,294</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision to prior year tax return</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;<ix:nonFraction id="fid_1132" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" format="ixt:numdotdecimal" decimals="0" unitRef="USD">36,032</ix:nonFraction></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_286" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">60,646</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Incentive stock options and warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_287" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:numdotdecimal" decimals="0" unitRef="USD">183,076</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_288" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,139</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gain Upon Debt Extinguishment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_289" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">116,083</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_293" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" format="ixt:numdotdecimal" decimals="0" unitRef="USD">34,034</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_294" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,894</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense (benefit)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_295" contextRef="From2022-01-01to2022-12-31" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_296" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">74,086</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-22</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_47b5cd"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Components of our deferred income tax assets (liabilities) are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_1029" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred tax assets:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Reserve for Bad Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_298" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">470,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_299" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">470,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_330" contextRef="AsOf2022-12-31" name="tomz:InventoryReserve" format="ixt:numdotdecimal" decimals="0" unitRef="USD">27,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_331" contextRef="AsOf2021-12-31" name="tomz:InventoryReserve" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accrued Vacation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_300" contextRef="AsOf2022-12-31" name="tomz:DeferredTaxAssetsAccruedVacation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">38,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_301" contextRef="AsOf2021-12-31" name="tomz:DeferredTaxAssetsAccruedVacation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">81,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Warranty Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_302" contextRef="AsOf2021-12-31" name="tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" format="ixt:numdotdecimal" decimals="0" unitRef="USD">19,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_303" contextRef="AsOf2022-12-31" name="tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" format="ixt:numdotdecimal" decimals="0" unitRef="USD">19,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Intangible Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_304" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">257,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_305" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">404,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capitalized Research and Development</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><ix:nonFraction id="fid_1134" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">67,000</ix:nonFraction></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><ix:nonFraction id="fid_1135" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_306" contextRef="AsOf2022-12-31" name="tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">241,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_307" contextRef="AsOf2021-12-31" name="tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">267,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net operating losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_308" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,639,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_309" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,124,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Valuation Allowance</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_310" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,332,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_311" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,941,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Deferred Tax Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_312" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">426,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_313" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">424,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred tax liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_315" contextRef="AsOf2022-12-31" name="tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">217,000</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_316" contextRef="AsOf2021-12-31" name="tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">277,000</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Property and Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_317" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">209,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_318" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">147,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_319" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">426,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_320" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">424,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Deferred Tax Assets and Liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_321" contextRef="AsOf2022-12-31" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_322" contextRef="AsOf2021-12-31" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:zerodash" decimals="0" unitRef="USD">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits, which are, on a more likely than not basis, not expected to be realized; in accordance with ASC guidance for income taxes. As of December 31, 2022, we recorded a valuation allowance of $<ix:nonFraction id="fid_328" contextRef="AsOf2022-12-31" name="tomz:NetDeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">5,332,000</ix:nonFraction> for the portion of the deferred tax assets that we do not expect to be realized. The valuation allowance on our net deferred taxes increased by $<ix:nonFraction id="fid_327" contextRef="From2022-01-01to2022-12-31" name="tomz:NetDeferredTaxAssetsIncreasedValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">391,000</ix:nonFraction> during the year ended December 31, 2022, primarily due to U.S. deferred tax assets incurred in the current year that cannot be realized. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">For income tax purposes in the United States, we had available federal net operating loss carryforwards (&#8220;NOL&#8221;) as of December 31, 2022 and 2021 of approximately $<ix:nonFraction id="fid_324" contextRef="AsOf2022-12-31" name="us-gaap:OperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">17,479,000</ix:nonFraction> and $<ix:nonFraction id="fid_323" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">15,262,000</ix:nonFraction> respectively to reduce future federal taxable income. For income tax purposes in the United States, we had available state NOL carryforwards as of December 31, 2022 and 2021 of approximately $<ix:nonFraction id="fid_326" contextRef="AsOf2022-12-31" name="tomz:StateNetOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">13,835,000</ix:nonFraction> and $<ix:nonFraction id="fid_325" contextRef="AsOf2021-12-31" name="tomz:StateNetOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">12,386,000</ix:nonFraction> respectively to reduce future state taxable income. If any of the NOL&#8217;s generated prior to 2018 are not utilized, they will expire at various dates through 2037. NOL&#8217;s generated after 2017 carry forward indefinitely. There may be certain limitations as to the future annual use of the NOLs due to certain changes in our ownership.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;">Federal and state laws can impose substantial restrictions on the utilization of net operating loss and tax credit carry-forwards in the event of an &#8220;ownership change,&#8221; as defined in Section 382 of the Internal Revenue Code. We did not perform 382 study to determine if ownership change occurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We record uncertain tax positions in accordance with ASC 740 on the basis of a two-step process whereby (1) we determine whether it is more likely than not that the tax positions will be sustained on the basis of the technical merits of the position and (2) for those tax positions that meet the more-likely-than-not recognition threshold, we recognize the largest amount of tax benefit that is more than 50 percent likely to be realized upon ultimate settlement with the related tax authority. As of December 31, 2022, and 2021, the management of the Company determined there were no reportable uncertain tax positions.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_981" contextRef="From2022-01-01to2022-12-31" name="us-gaap:ConcentrationRiskDisclosureTextBlock" escape="true" continuedAt="cont_60d52f"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 16. CUSTOMER CONCENTRATION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">The Company had certain customers whose accounts receivable balances individually represented <ix:nonFraction id="fid_361" contextRef="From2022-01-01to2022-03-31_tomz_OneCustomerMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">10</ix:nonFraction>% or more of the Company&#8217;s accounts receivable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, one customers accounted for <ix:nonFraction id="fid_362" contextRef="From2022-01-01to2022-03-31_tomz_TwoCustomerMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">14</ix:nonFraction>% of our gross accounts receivable.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-23</td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#TOCF">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_60d52f"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2021, three customers accounted for <ix:nonFraction id="fid_365" contextRef="From2021-01-01to2021-12-31_tomz_ThreeCustomerMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">42</ix:nonFraction>% of our gross accounts receivable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the years ended December 31, 2022 and 2021, we had no customers who represented <ix:nonFraction id="fid_363" contextRef="From2022-01-01to2022-03-31" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">10</ix:nonFraction>% or more of revenue.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;</p><ix:nonNumeric id="fid_982" contextRef="From2022-01-01to2022-12-31" name="us-gaap:SubsequentEventsTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 17. SUBSEQUENT EVENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Pursuant to the agreement with our Board of Directors, in January 2023, we issued an aggregate of <ix:nonFraction id="fid_1106" contextRef="From2023-01-01to2023-01-31_srt_BoardOfDirectorsChairmanMember_us-gaap_SubsequentEventMember" name="us-gaap:ConversionOfStockSharesIssued1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">60,000</ix:nonFraction> shares of common stock valued at approximately $<ix:nonFraction id="fid_1107" contextRef="From2023-01-01to2023-01-31_srt_BoardOfDirectorsChairmanMember_us-gaap_SubsequentEventMember" name="us-gaap:ConversionOfStockAmountIssued1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">51,000</ix:nonFraction> to independent directors of the Board. The agreements with our Board provide for the annual issuance of shares of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2023 we issued an option to purchase <ix:nonFraction id="fid_1085" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">100,000</ix:nonFraction> shares of common stock to our Chief Executive Officer at an exercise price of $<ix:nonFraction id="fid_1082" contextRef="AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.85</ix:nonFraction> per share pursuant to an employment agreement. The option was valued at $<ix:nonFraction id="fid_1088" contextRef="AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="tomz:StockOptionValued" format="ixt:numdotdecimal" decimals="0" unitRef="USD">75,635</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1091" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="tomz:StockOptionTerm" format="ixt-sec:duryear">10</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, <ix:nonFraction id="fid_1094" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="tomz:Volatility" decimals="INF" unitRef="Pure" scale="-2">139</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1097" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="tomz:ExpectedDividendYield" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1100" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="tomz:RiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">3.59</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1108" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" format="ixt-sec:duryear">10</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1103" contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember" name="tomz:GrantDateFairValuePerShareOfCommonStock" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.76</ix:nonFraction>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2023 we issued an option to purchase <ix:nonFraction id="fid_1086" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction> shares of common stock to our Chief Operating Officer at an exercise price of $<ix:nonFraction id="fid_1083" contextRef="AsOf2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.85</ix:nonFraction> per share pursuant to an employment agreement. The option was valued at $<ix:nonFraction id="fid_1089" contextRef="AsOf2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="tomz:StockOptionValued" format="ixt:numdotdecimal" decimals="0" unitRef="USD">37,817</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1092" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="tomz:StockOptionTerm" format="ixt-sec:duryear">10</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Operating Officer with the following assumptions: volatility, <ix:nonFraction id="fid_1095" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="tomz:Volatility" decimals="INF" unitRef="Pure" scale="-2">139</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1098" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="tomz:ExpectedDividendYield" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1101" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="tomz:RiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">3.59</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1109" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" format="ixt-sec:duryear">10</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1104" contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember" name="tomz:GrantDateFairValuePerShareOfCommonStock" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.76</ix:nonFraction>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2023 we issued an option to purchase <ix:nonFraction id="fid_1087" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">25,000</ix:nonFraction> shares of common stock to our Chief Financial Officer at an exercise price of $<ix:nonFraction id="fid_1084" contextRef="AsOf2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.85</ix:nonFraction> per share pursuant to an employment agreement. The option was valued at $<ix:nonFraction id="fid_1090" contextRef="AsOf2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="tomz:StockOptionValued" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,909</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1093" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="tomz:StockOptionTerm" format="ixt-sec:duryear">10</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Financial Officer with the following assumptions: volatility, <ix:nonFraction id="fid_1096" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="tomz:Volatility" decimals="INF" unitRef="Pure" scale="-2">139</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1099" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="tomz:ExpectedDividendYield" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1102" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="tomz:RiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">3.59</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1110" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" format="ixt-sec:duryear">10</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1105" contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember" name="tomz:GrantDateFairValuePerShareOfCommonStock" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.76</ix:nonFraction>.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">F-24</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21.1
<SEQUENCE>2
<FILENAME>tomz_ex211.htm
<DESCRIPTION>SUBSIDIARIES
<TEXT>
<html><head><title>tomz_ex211.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 21.1</strong></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:center;"><strong>Subsidiaries of TOMI Environmental Solutions, Inc.</strong></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI Environmental Solutions, Inc., a Nevada corporation</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>3
<FILENAME>tomz_ex311.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex311.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 31.1</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATION PURSUANT TO</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>RULE 13a-14(a) OR RULE 15d-14(a) OF THE</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECURITIES EXCHANGE ACT OF 1934</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">I, Halden S. Shane, certify that:</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;vertical-align:top;"> <p style="margin:0px">1.</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">I have reviewed this Annual Report on Form 10-K of TOMI Environmental Solutions, Inc.;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">2.</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">3.</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">4.</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">The registrant&#8217;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:</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="margin:0px">(a)</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">(c)</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">Evaluated the effectiveness of the registrant&#8217;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</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">(d)</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;vertical-align:top;"> <p style="margin:0px">5.</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:justify;">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions):</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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&#8217;s ability to record, process, summarize and report financial information; and</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Dated: March 16, 2023</p> <p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&nbsp;</p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;"></td> <td style="width:3%;"></td> <td style="BORDER-BOTTOM: black 1px solid;width:35%;"> <p style="MARGIN: 0px; text-align:center;">/s/&nbsp;&nbsp;&nbsp;&nbsp;HALDEN S. SHANE</p></td> <td style="width:12%;"></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:center;"><strong>Halden S. Shane</strong></p> <p style="MARGIN: 0px; text-align:center;"><strong>Chief Executive Officer</strong></p> <p style="MARGIN: 0px; text-align:center;"><strong>(Principal Executive Officer)</strong></p></td> <td>&nbsp;</td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>4
<FILENAME>tomz_ex312.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex312.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 31.2</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATION PURSUANT TO</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>RULE 13a-14(a) OR RULE 15d-14(a) OF THE</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECURITIES EXCHANGE ACT OF 1934</strong></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">I, Nick Jennings, certify that:</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">1.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">I have reviewed this Annual Report on Form 10-K of TOMI Environmental Solutions, Inc.;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">2.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">3.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">4.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The registrant&#8217;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:</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(c)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Evaluated the effectiveness of the registrant&#8217;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</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(d)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">5.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions):</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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&#8217;s ability to record, process, summarize and report financial information; and</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Dated:&nbsp; March 16, 2023</p> <p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 12.2pt">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:3%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/&nbsp;Nick Jennings</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Nick Jennings</strong></p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="MARGIN: 0px; text-align:center;"><strong>Chief Financial Officer</strong> </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Principal Financial Officer and</strong></p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Principal Accounting Officer)</strong></p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>5
<FILENAME>tomz_ex321.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex321.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 32.1</strong></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATIONS OF CHIEF EXECUTIVE OFFICER AND CHIEF FINANCIAL OFFICER</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>PURSUANT TO 18 U.S.C. SECTION 1350,</strong><strong></strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>AS ADOPTED PURSUANT TO</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</strong></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:24.5pt">Pursuant to 18 U.S.C. Section&nbsp;1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, each of Halden S. Shane, the Chief Executive Officer, and Nick Jennings, the Chief Financial Officer, of TOMI Environmental Solutions, Inc., hereby certifies in his capacity as an officer of TOMI Environmental Solutions, Inc., that, to his knowledge, the Annual Report of TOMI Environmental Solutions, Inc. on Form 10-K for the fiscal year ended December 31, 2022: (i)&nbsp;fully complies with the requirements of Section&nbsp;13(a) or 15(d) of the Securities Exchange Act of 1934, and (ii)&nbsp;the information contained in such report fairly presents, in all material respects, the financial condition and results of operations of TOMI Environmental Solutions, Inc.</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;vertical-align:bottom;"> <p style="margin:0px">Date: March 16, 2023</p></td> <td style="width:3%;vertical-align:bottom;"> <p style="margin:0px">By:</p></td> <td style="BORDER-BOTTOM: #000000 1px solid;width:35%;vertical-align:bottom;"> <p style="margin:0px"><em>/s/ </em>HALDEN S. SHANE</p></td> <td style="width:12%;"> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="margin:0px"><strong>Halden S. Shane</strong></p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="margin:0px"><strong>Chief Executive Officer</strong></p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="margin:0px"><strong>(Principal Executive Officer)</strong><strong></strong></p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:bottom;"> <p style="margin:0px">Date: March 16, 2023</p></td> <td style="vertical-align:bottom;"> <p style="margin:0px">By:</p></td> <td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"> <p style="margin:0px">/<em>s/ </em>NICK JENNINGS</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="margin:0px"><strong>Nick Jennings</strong></p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="margin:0px"><strong>Chief Financial Officer</strong></p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="margin:0px"><strong>(Principal Financial and Accounting Officer)</strong><strong></strong></p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>tomz-20221231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 03/16/2023-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2023 I-NET Business Solutions, Inc. All Rights Reserved.-->
<schema xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:currency="http://xbrl.sec.gov/currency/2022" xmlns:us-gaap-att="http://fasb.org/us-gaap/attributes" xmlns:sic="http://xbrl.sec.gov/sic/2022" xmlns:exch="http://xbrl.sec.gov/exch/2022" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:naics="http://xbrl.sec.gov/naics/2022" xmlns:us-types="http://fasb.org/us-types/2022" xmlns:stpr="http://xbrl.sec.gov/stpr/2022" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:country="http://xbrl.sec.gov/country/2022" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2022" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:srt-roles="http://fasb.org/srt-roles/2022" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:srt="http://fasb.org/srt/2022" xmlns:us-gaap="http://fasb.org/us-gaap/2022" xmlns:tomz="http://tomz.com/20221231" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://tomz.com/20221231">
  <annotation>
    <appinfo>
      <link:roleType roleURI="http://tomz.com/role/Cover" id="Cover">
        <link:definition>000001 - Document - Cover</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://tomz.com/role/CondensedConsolidatedBalanceSheets" id="CondensedConsolidatedBalanceSheets">
        <link:definition>000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS</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://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" id="CondensedConsolidatedBalanceSheetsParenthetical">
        <link:definition>000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)</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://tomz.com/role/CondensedConsolidatedStatementsOfOperations" id="CondensedConsolidatedStatementsOfOperations">
        <link:definition>000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</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://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" id="CondensedConsolidatedStatementsOfStockholdersEquity">
        <link:definition>000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF 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://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" id="CondensedConsolidatedStatementsOfCashFlows">
        <link:definition>000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</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://tomz.com/role/DescriptionOfBusiness" id="DescriptionOfBusiness">
        <link:definition>000007 - Disclosure - DESCRIPTION OF BUSINESS</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://tomz.com/role/SummaryOfSignificantAccountingPolicies" id="SummaryOfSignificantAccountingPolicies">
        <link:definition>000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING 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://tomz.com/role/INVENTORIES" id="INVENTORIES">
        <link:definition>000009 - Disclosure - INVENTORIES</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://tomz.com/role/VendorDeposits" id="VendorDeposits">
        <link:definition>000010 - Disclosure - VENDOR DEPOSITS</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://tomz.com/role/PropertyAndEquipment" id="PropertyAndEquipment">
        <link:definition>000011 - Disclosure - PROPERTY AND EQUIPMENT</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://tomz.com/role/IntangibleAssets" id="IntangibleAssets">
        <link:definition>000012 - Disclosure - 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://tomz.com/role/LEASES" id="LEASES">
        <link:definition>000013 - Disclosure - 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://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" id="CapitalizedSoftwareDevelopmentCosts">
        <link:definition>000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS</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://tomz.com/role/CloudComputingServiceContract" id="CloudComputingServiceContract">
        <link:definition>000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT</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://tomz.com/role/ShareholdersEquity" id="ShareholdersEquity">
        <link:definition>000016 - Disclosure - SHAREHOLDERS 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://tomz.com/role/CommitmentsAndContingencies" id="CommitmentsAndContingencies">
        <link:definition>000017 - 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://tomz.com/role/ContractsAndAgreements" id="ContractsAndAgreements">
        <link:definition>000018 - Disclosure - CONTRACTS AND AGREEMENTS</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://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" id="AccruedExpensesAndOtherCurrentLiabilities">
        <link:definition>000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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://tomz.com/role/AccruedWarranty" id="AccruedWarranty">
        <link:definition>000020 - Disclosure - ACCRUED WARRANTY</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://tomz.com/role/IncomeTaxes" id="IncomeTaxes">
        <link:definition>000021 - 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://tomz.com/role/CustomerConcentration" id="CustomerConcentration">
        <link:definition>000022 - Disclosure - CUSTOMER CONCENTRATION</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://tomz.com/role/SubsequentEvents" id="SubsequentEvents">
        <link:definition>000023 - Disclosure - SUBSEQUENT EVENTS</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://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" id="SummaryOfSignificantAccountingPoliciesPolicies">
        <link:definition>000024 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" id="SummaryOfSignificantAccountingPoliciesTables">
        <link:definition>000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (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://tomz.com/role/InventoriesTables" id="InventoriesTables">
        <link:definition>000026 - Disclosure - INVENTORIES (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://tomz.com/role/PropertyAndEquipmentTables" id="PropertyAndEquipmentTables">
        <link:definition>000027 - Disclosure - PROPERTY AND EQUIPMENT (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://tomz.com/role/IntangibleAssetsTables" id="IntangibleAssetsTables">
        <link:definition>000028 - Disclosure - 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://tomz.com/role/LeasesTables" id="LeasesTables">
        <link:definition>000029 - Disclosure - 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://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" id="CapitalizedSoftwareDevelopmentCostsTables">
        <link:definition>000030 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (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://tomz.com/role/ShareholdersEquityTables" id="ShareholdersEquityTables">
        <link:definition>000031 - Disclosure - SHAREHOLDERS 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://tomz.com/role/ContractsAndAgreementsTables" id="ContractsAndAgreementsTables">
        <link:definition>000032 - Disclosure - CONTRACTS AND AGREEMENTS (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://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" id="AccruedExpensesAndOtherCurrentLiabilitiesTables">
        <link:definition>000033 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (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://tomz.com/role/AccruedWarrantyTables" id="AccruedWarrantyTables">
        <link:definition>000034 - Disclosure - ACCRUED WARRANTY (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://tomz.com/role/IncomeTaxesTables" id="IncomeTaxesTables">
        <link:definition>000035 - Disclosure - INCOME TAXES (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" id="SummaryOfSignificantAccountingPoliciesDetails">
        <link:definition>000036 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" id="SummaryOfSignificantAccountingPoliciesDetails1">
        <link:definition>000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" id="SummaryOfSignificantAccountingPoliciesDetails2">
        <link:definition>000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" id="SummaryOfSignificantAccountingPoliciesDetailsNarrative">
        <link:definition>000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)</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://tomz.com/role/InventoriesDetails" id="InventoriesDetails">
        <link:definition>000040 - Disclosure - 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://tomz.com/role/VendorDepositsDetailsNarrative" id="VendorDepositsDetailsNarrative">
        <link:definition>000041 - Disclosure - VENDOR DEPOSITS (Details Narrative)</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://tomz.com/role/PropertyAndEquipmentDetails" id="PropertyAndEquipmentDetails">
        <link:definition>000042 - Disclosure - PROPERTY AND EQUIPMENT (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://tomz.com/role/PropertyAndEquipmentDetailsNarrative" id="PropertyAndEquipmentDetailsNarrative">
        <link:definition>000043 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)</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://tomz.com/role/IntangibleAssetsDetails" id="IntangibleAssetsDetails">
        <link:definition>000044 - Disclosure - 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://tomz.com/role/IntangibleAssetsDetails1" id="IntangibleAssetsDetails1">
        <link:definition>000045 - Disclosure - INTANGIBLE ASSETS (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://tomz.com/role/IntangibleAssetsDetails2" id="IntangibleAssetsDetails2">
        <link:definition>000046 - Disclosure - INTANGIBLE ASSETS (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://tomz.com/role/IntangibleAssetsDetailsNarrative" id="IntangibleAssetsDetailsNarrative">
        <link:definition>000047 - Disclosure - INTANGIBLE ASSETS (Details Narrative)</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://tomz.com/role/LeasesDetails" id="LeasesDetails">
        <link:definition>000048 - Disclosure - 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://tomz.com/role/LeasesDetails1" id="LeasesDetails1">
        <link:definition>000049 - Disclosure - LEASES (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://tomz.com/role/LeasesDetails2" id="LeasesDetails2">
        <link:definition>000050 - Disclosure - LEASES (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://tomz.com/role/LeasesDetails3" id="LeasesDetails3">
        <link:definition>000051 - Disclosure - LEASES (Details 3)</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://tomz.com/role/LeasesDetails4" id="LeasesDetails4">
        <link:definition>000052 - Disclosure - LEASES (Details 4)</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://tomz.com/role/LeasesDetailsNarrative" id="LeasesDetailsNarrative">
        <link:definition>000053 - Disclosure - LEASES (Details Narrative)</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://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" id="CapitalizedSoftwareDevelopmentCostsDetails">
        <link:definition>000054 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (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://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" id="CapitalizedSoftwareDevelopmentCostsDetailsNarrative">
        <link:definition>000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)</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://tomz.com/role/CloudComputingServiceContractDetailsNarrative" id="CloudComputingServiceContractDetailsNarrative">
        <link:definition>000056 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</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://tomz.com/role/ShareholdersEquityDetails" id="ShareholdersEquityDetails">
        <link:definition>000057 - Disclosure - SHAREHOLDERS EQUITY (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://tomz.com/role/ShareholdersEquityDetails1" id="ShareholdersEquityDetails1">
        <link:definition>000058 - Disclosure - SHAREHOLDERS EQUITY (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://tomz.com/role/ShareholdersEquityDetails2" id="ShareholdersEquityDetails2">
        <link:definition>000059 - Disclosure - SHAREHOLDERS EQUITY (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://tomz.com/role/ShareholdersEquityDetails3" id="ShareholdersEquityDetails3">
        <link:definition>000060 - Disclosure - SHAREHOLDERS EQUITY (Details 3)</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://tomz.com/role/ShareholdersEquityDetailsNarrative" id="ShareholdersEquityDetailsNarrative">
        <link:definition>000061 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)</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://tomz.com/role/ContractsAndAgreementsDetails" id="ContractsAndAgreementsDetails">
        <link:definition>000062 - Disclosure - CONTRACTS AND AGREEMENTS (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://tomz.com/role/ContractsAndAgreementsDetailsNarrative" id="ContractsAndAgreementsDetailsNarrative">
        <link:definition>000063 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)</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://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" id="AccruedExpensesAndOtherCurrentLiabilitiesDetails">
        <link:definition>000064 - Disclosure - 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://tomz.com/role/AccruedWarrantyDetails" id="AccruedWarrantyDetails">
        <link:definition>000065 - Disclosure - ACCRUED WARRANTY (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://tomz.com/role/IncomeTaxesDetails" id="IncomeTaxesDetails">
        <link:definition>000066 - Disclosure - INCOME TAXES (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://tomz.com/role/IncomeTaxesDetails1" id="IncomeTaxesDetails1">
        <link:definition>000067 - Disclosure - INCOME TAXES (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://tomz.com/role/IncomeTaxesDetails2" id="IncomeTaxesDetails2">
        <link:definition>000068 - Disclosure - INCOME TAXES (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://tomz.com/role/IncomeTaxesDetails3" id="IncomeTaxesDetails3">
        <link:definition>000069 - Disclosure - INCOME TAXES (Details 3)</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://tomz.com/role/IncomeTaxesDetailsNarrative" id="IncomeTaxesDetailsNarrative">
        <link:definition>000070 - Disclosure - INCOME TAXES (Details Narrative)</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://tomz.com/role/CustomerConcentrationDetailsNarrative" id="CustomerConcentrationDetailsNarrative">
        <link:definition>000071 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)</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://tomz.com/role/SubsequentEventsDetailsNarrative" id="SubsequentEventsDetailsNarrative">
        <link:definition>000072 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20221231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20221231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20221231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20221231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
    </appinfo>
  </annotation>
  <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
  <import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <import namespace="http://xbrl.sec.gov/country/2022" schemaLocation="https://xbrl.sec.gov/country/2022/country-2022.xsd" />
  <import namespace="http://xbrl.sec.gov/currency/2022" schemaLocation="https://xbrl.sec.gov/currency/2022/currency-2022.xsd" />
  <import namespace="http://xbrl.sec.gov/dei/2022" schemaLocation="https://xbrl.sec.gov/dei/2022/dei-2022.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd" />
  <import namespace="http://xbrl.sec.gov/exch/2022" schemaLocation="https://xbrl.sec.gov/exch/2022/exch-2022.xsd" />
  <import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <import namespace="http://xbrl.sec.gov/naics/2022" schemaLocation="https://xbrl.sec.gov/naics/2022/naics-2022.xsd" />
  <import namespace="http://xbrl.sec.gov/sic/2022" schemaLocation="https://xbrl.sec.gov/sic/2022/sic-2022.xsd" />
  <import namespace="http://fasb.org/srt-roles/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd" />
  <import namespace="http://fasb.org/srt-types/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd" />
  <import namespace="http://xbrl.sec.gov/stpr/2022" schemaLocation="https://xbrl.sec.gov/stpr/2022/stpr-2022.xsd" />
  <import namespace="http://fasb.org/us-roles/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd" />
  <import namespace="http://fasb.org/us-types/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd" />
  <import namespace="http://fasb.org/srt/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd" />
  <import namespace="http://fasb.org/us-gaap/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd" />
  <element id="tomz_PreferredStockParOrStatedValue" name="PreferredStockParOrStatedValue" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConsultingFees" name="ConsultingFees" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EquityCompensation" name="EquityCompensation" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockIssuedForServicesProvidedShares" name="CommonStockIssuedForServicesProvidedShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockIssuedForServicesProvidedAmount" name="CommonStockIssuedForServicesProvidedAmount" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantsAndOptionsExercisedShares" name="WarrantsAndOptionsExercisedShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantsAndOptionsExercisedAmount" name="WarrantsAndOptionsExercisedAmount" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EquityCompensationExpense" name="EquityCompensationExpense" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DecreaseIncreaseInAbstract" name="DecreaseIncreaseInAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_IncreaseDecreaseInAbstract" name="IncreaseDecreaseInAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_IncreaseDecreaseInLeaseLiabilities" name="IncreaseDecreaseInLeaseLiabilities" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CapitalizedPatentAndTrademarkCosts" name="CapitalizedPatentAndTrademarkCosts" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_PurchaseOfPropertyAndEquipment" name="PurchaseOfPropertyAndEquipment" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets" name="PatentAndTrademarkCostsReclassifiedFromOtherAssets" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_VendorDepositsTextBlock" name="VendorDepositsTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CloudComputingServiceContractDisclosureTextBlock" name="CloudComputingServiceContractDisclosureTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ContractsAndAgreementsTextBlock" name="ContractsAndAgreementsTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AccountsPayablePolicyTextBlock" name="AccountsPayablePolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" name="LonglivedAssetsIncludingAcquiredIntangibleAssets" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OperatingLeaseLiabilityTableTextBlock" name="OperatingLeaseLiabilityTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_LeaseOtherInformationTableTextBlock" name="LeaseOtherInformationTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" name="SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" name="CapitalizedSoftwareDevelopmentCostsTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantsOutstandingAndExercisableByPriceRange" name="WarrantsOutstandingAndExercisableByPriceRange" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ApproximateMinimumContractPaymentsTableTextBlock" name="ApproximateMinimumContractPaymentsTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_NetLossAttributableToCommonShareholders" name="NetLossAttributableToCommonShareholders" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_Basic" name="Basic" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_Diluted" name="Diluted" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageNumberOfDilutedShareOutstanding1" name="WeightedAverageNumberOfDilutedShareOutstanding1" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ChangesInRevenue" name="ChangesInRevenue" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ResearchAndDevelopmentsExpense" name="ResearchAndDevelopmentsExpense" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockIssuableUponConversionOfOutstandingShares" name="CommonStockIssuableUponConversionOfOutstandingShares" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" name="AmortizationOfCapitalizedSoftwareDevelopmentCosts" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConcentrationRiskPercentage" name="ConcentrationRiskPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockSharesIssuedVested" name="CommonStockSharesIssuedVested" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_Equipments" name="Equipments" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ComputerSoftware" name="ComputerSoftware" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AmortizationOfTenantImprovementAllowance" name="AmortizationOfTenantImprovementAllowance" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_IntangibleAssetsNet" name="IntangibleAssetsNet" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" name="OperatingLeaseWeightedAveragesRemainingLeaseTerm" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_TermLease" name="TermLease" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_MaximumIncreasesRentPercentage" name="MaximumIncreasesRentPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ProceedsFromServiceContractOfReceivables" name="ProceedsFromServiceContractOfReceivables" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AnnualPaymentsOnContractTerm" name="AnnualPaymentsOnContractTerm" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OutstandingBeginningOfPeriod" name="OutstandingBeginningOfPeriod" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OutstandingEndOfPeriod" name="OutstandingEndOfPeriod" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageExercisePriceAbstract" name="WeightedAverageExercisePriceAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" name="WeightedAverageExercisePriceOutstandingBeginningBalance" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageExercisePriceGranted" name="WeightedAverageExercisePriceGranted" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageExercisePriceExercised" name="WeightedAverageExercisePriceExercised" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageExercisePriceExpired" name="WeightedAverageExercisePriceExpired" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WeightedAverageExercisePriceOutstandingEndingBalance" name="WeightedAverageExercisePriceOutstandingEndingBalance" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" name="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" nillable="true" xbrli:periodType="instant" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockShareSold" name="CommonStockShareSold" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_IssuedWarrantsInConcurrentPrivatePlacement" name="IssuedWarrantsInConcurrentPrivatePlacement" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_IssuedWarrantsInConcurrentPlacementAgent" name="IssuedWarrantsInConcurrentPlacementAgent" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_TermsOfOutstandingWarrantsToPurchase" name="TermsOfOutstandingWarrantsToPurchase" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_GrantFairValueOfPerShare" name="GrantFairValueOfPerShare" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ExercisePriceOfWarrant" name="ExercisePriceOfWarrant" nillable="true" xbrli:periodType="instant" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantAmendmentDescription" name="WarrantAmendmentDescription" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AggregateCashConsideration" name="AggregateCashConsideration" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" name="WarrantsIssuedUponPurchaseShareOfCommonStock" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_FairValueOfStockOption" name="FairValueOfStockOption" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_TermOfAgreement" name="TermOfAgreement" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DirectorFeesCurrentAndNoncurrent" name="DirectorFeesCurrentAndNoncurrent" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SalesTaxPayable" name="SalesTaxPayable" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SettlementOfWarrantyClaims" name="SettlementOfWarrantyClaims" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ProvisionForIncomeTaxes" name="ProvisionForIncomeTaxes" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_IncomeLossBeforeIncomeTax" name="IncomeLossBeforeIncomeTax" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_InventoryReserve" name="InventoryReserve" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DeferredTaxAssetsAccruedVacation" name="DeferredTaxAssetsAccruedVacation" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" name="DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" name="DeferredTaxAssetOperatingLeaseRightofuseLiabilities" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" name="DeferredTaxLiabilityOperatingLeaseRightofuseAssets" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_StateNetOperatingLossCarryforwards" name="StateNetOperatingLossCarryforwards" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_NetDeferredTaxAssetsIncreasedValuationAllowance" name="NetDeferredTaxAssetsIncreasedValuationAllowance" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_NetDeferredTaxAssetsValuationAllowance" name="NetDeferredTaxAssetsValuationAllowance" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_StockOptionValued" name="StockOptionValued" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_StockOptionTerm" name="StockOptionTerm" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_Volatility" name="Volatility" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ExpectedDividendYield" name="ExpectedDividendYield" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_RiskFreeInterestRate" name="RiskFreeInterestRate" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_GrantDateFairValuePerShareOfCommonStock" name="GrantDateFairValuePerShareOfCommonStock" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element name="SteraMistPRoductMember" id="tomz_SteraMistPRoductMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ServiceAndTrainingMember" id="tomz_ServiceAndTrainingMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="UnitedStatesMember" id="tomz_UnitedStatesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="InternationalMember" id="tomz_InternationalMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="GeographicRegionMember" id="tomz_GeographicRegionMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TwoVendorsMember" id="tomz_TwoVendorsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsMember" id="tomz_WarrantsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="StockOptionsMember" id="tomz_StockOptionsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="EquityIncentivePlanOneMember" id="tomz_EquityIncentivePlanOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ExecutiveAgreementsWithHaldenSShaneMember" id="tomz_ExecutiveAgreementsWithHaldenSShaneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ExecutiveAgreementsWithElissaJShaneMember" id="tomz_ExecutiveAgreementsWithElissaJShaneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="BoardOfMembersMember" id="tomz_BoardOfMembersMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="CommitteeChairpersonMember" id="tomz_CommitteeChairpersonMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="OneCustomerMember" id="tomz_OneCustomerMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TwoCustomerMember" id="tomz_TwoCustomerMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ThreeCustomerMember" id="tomz_ThreeCustomerMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="StockWarrantMember" id="tomz_StockWarrantMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeOneMember" id="tomz_RangeOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeSevenMember" id="tomz_RangeSevenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeThreeMember" id="tomz_RangeThreeMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeFourMember" id="tomz_RangeFourMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeFiveMember" id="tomz_RangeFiveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeTwoMember" id="tomz_RangeTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsOneMember" id="tomz_WarrantsOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsTwoMember" id="tomz_WarrantsTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsThreeMember" id="tomz_WarrantsThreeMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsFourMember" id="tomz_WarrantsFourMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsFiveMember" id="tomz_WarrantsFiveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsSevenMember" id="tomz_WarrantsSevenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsEightMember" id="tomz_WarrantsEightMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsTenMember" id="tomz_WarrantsTenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsElevenMember" id="tomz_WarrantsElevenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsTwelveMember" id="tomz_WarrantsTwelveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="PrivatePlacementsMember" id="tomz_PrivatePlacementsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="PlacementAgentMember" id="tomz_PlacementAgentMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="JanuaryTwentyTwentyTwoMember" id="tomz_JanuaryTwentyTwentyTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="JanuaryTwentyTwentyOneMember" id="tomz_JanuaryTwentyTwentyOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ChiefOperatingOfficersMember" id="tomz_ChiefOperatingOfficersMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="JanuaryTwentyTwoMember" id="tomz_JanuaryTwentyTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeEightMember" id="tomz_RangeEightMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeNineMember" id="tomz_RangeNineMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="SeriesAPreferredStocksMember" id="tomz_SeriesAPreferredStocksMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>7
<FILENAME>tomz-20221231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 03/16/2023-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2023 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" />
  <link:roleRef xlink:type="simple" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityVoluntaryFilers_lbl" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityWellKnownSeasonedIssuer_lbl" xml:lang="en-US">Entity Well Known Seasoned Issuer</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US">Entity Common Stock Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPublicFloat" xlink:to="dei_EntityPublicFloat_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityPublicFloat_lbl" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAnnualReport_lbl" xml:lang="en-US">Document Annual Report</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentTransitionReport_lbl" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US">Entity Incorporation State Country Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US">Entity Address Address Line 1</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US">Entity Address City Or Town</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US">Entity Address State Or Province</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US">Entity Address Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="dei_IcfrAuditorAttestationFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_IcfrAuditorAttestationFlag" xlink:to="dei_IcfrAuditorAttestationFlag_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_IcfrAuditorAttestationFlag_lbl" xml:lang="en-US">Icfr Auditor Attestation Flag</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorLocation" xlink:label="dei_AuditorLocation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorLocation" xlink:to="dei_AuditorLocation_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorLocation_lbl" xml:lang="en-US">Auditor Location</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorFirmId" xlink:label="dei_AuditorFirmId" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorFirmId" xlink:to="dei_AuditorFirmId_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorFirmId_lbl" xml:lang="en-US">Auditor Firm Id</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US">Security 12b Title</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorName" xlink:label="dei_AuditorName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorName" xlink:to="dei_AuditorName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorName_lbl" xml:lang="en-US">Auditor Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl_ed5e87" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl_ed5e87" xml:lang="en-US">CONDENSED CONSOLIDATED BALANCE SHEETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl_c70b69" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl_c70b69" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl_43c29d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl_43c29d" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis_lbl_4e515f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementClassOfStockAxis_lbl_4e515f" xml:lang="en-US">Statement Class Of Stock Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="us-gaap_SeriesAPreferredStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SeriesAPreferredStockMember" xlink:to="us-gaap_SeriesAPreferredStockMember_lbl_773836" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesAPreferredStockMember_lbl_773836" xml:lang="en-US">Cumulative Convertible Series A Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="us-gaap_SeriesBPreferredStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SeriesBPreferredStockMember" xlink:to="us-gaap_SeriesBPreferredStockMember_lbl_efdc0f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesBPreferredStockMember_lbl_efdc0f" xml:lang="en-US">Cumulative Convertible Series B Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashEquivalentsAtCarryingValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashEquivalentsAtCarryingValue_lbl_b8b708" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashEquivalentsAtCarryingValue_lbl_b8b708" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl_cdcbdb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl_cdcbdb" xml:lang="en-US">Accounts Receivable - net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherReceivablesNetCurrent_lbl_66769e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl_66769e" xml:lang="en-US">Other Receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl_c3daeb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl_c3daeb" xml:lang="en-US">Inventories (Note 3)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="us-gaap_DepositsAssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepositsAssetsCurrent" xlink:to="us-gaap_DepositsAssetsCurrent_lbl_154156" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepositsAssetsCurrent_lbl_154156" xml:lang="en-US">Vendor Deposits (Note 4)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent_lbl_d3cbba" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl_d3cbba" xml:lang="en-US">Prepaid Expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl_8c715a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl_8c715a" xml:lang="en-US">Total Current Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl_8" xml:lang="en-US">[Assets, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl_1918b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_1918b1" xml:lang="en-US">Property and Equipment - net (Note 5)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsAbstract" xlink:label="us-gaap_OtherAssetsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsAbstract_lbl_96df63" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsAbstract_lbl_96df63" xml:lang="en-US">Other Assets:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_3f8cef" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_3f8cef" xml:lang="en-US">Intangible Assets - net (Note 6)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl_a0c765" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_a0c765" xml:lang="en-US">Operating Lease - Right of Use Asset (Note - 7)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:label="us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:to="us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_lbl_6fa2e2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_lbl_6fa2e2" xml:lang="en-US">Capitalized Software Development Costs - net (Note 8)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl_c7f489" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl_c7f489" xml:lang="en-US">Other Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl_53b62a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherAssets_lbl_53b62a" xml:lang="en-US">Total Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl_15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssets_lbl_15" xml:lang="en-US">[Other Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_886b5b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl_886b5b" xml:lang="en-US">Total Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl_16" xml:lang="en-US">[Assets]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl_b32a35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl_b32a35" xml:lang="en-US">LIABILITIES AND SHAREHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl_1d4e3f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl_1d4e3f" xml:lang="en-US">Current Liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl_45dc54" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableCurrent_lbl_45dc54" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl_19" xml:lang="en-US">[Accounts Payable, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_5453e0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_5453e0" xml:lang="en-US">Accrued Expenses and Other Current Liabilities (Note 13)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerDepositsCurrent" xlink:label="us-gaap_CustomerDepositsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerDepositsCurrent" xlink:to="us-gaap_CustomerDepositsCurrent_lbl_02d8c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerDepositsCurrent_lbl_02d8c2" xml:lang="en-US">Deferred Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_f67142" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_f67142" xml:lang="en-US">Current Portion of Long-Term Operating Lease</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl_9ce6d7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl_9ce6d7" xml:lang="en-US">Total Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl_23" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl_23" xml:lang="en-US">[Liabilities, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrentAbstract" xlink:to="us-gaap_LiabilitiesNoncurrentAbstract_lbl_19b164" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract_lbl_19b164" xml:lang="en-US">Long-Term Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_f00f1d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_f00f1d" xml:lang="en-US">Long-Term Operating Lease, Net of Current Portion (Note 7)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl_02396b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_02396b" xml:lang="en-US">Total Long-Term Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="us-gaap_LiabilitiesNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl_26" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_26" xml:lang="en-US">[Liabilities, Noncurrent]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl_386b79" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl_386b79" xml:lang="en-US">Total Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl_27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl_27" xml:lang="en-US">[Liabilities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl_c680ce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl_c680ce" xml:lang="en-US">Shareholders' Equity:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl_e9a28b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockValue_lbl_e9a28b" xml:lang="en-US">Cumulative Convertible Series A Preferred Stock; par value $0.01 per share, 1,000,000 shares authorized; 63,750 shares issued and outstanding at December 31, 2022 and December 31, 2021</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl_940dda" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl_940dda" xml:lang="en-US">Common stock; par value $0.01 per share, 250,000,000 shares authorized; 19,763,955 and 16,761,513 shares issued and outstanding at December 31, 2022 and December 31, 2021, respectively.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl_4d15f8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_4d15f8" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl_31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_31" xml:lang="en-US">[Additional Paid in Capital]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_f240b8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_f240b8" xml:lang="en-US">Accumulated Deficit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_cb6030" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl_cb6030" xml:lang="en-US">Total Shareholders' Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl_33" xml:lang="en-US">[Stockholders' Equity Attributable to Parent]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl_d54df1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_d54df1" xml:lang="en-US">Total Liabilities and Shareholders' Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl_34" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_34" xml:lang="en-US">[Liabilities and Equity]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl_c79542" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockholdersEquityAbstract_lbl_c79542" xml:lang="en-US">Stockholders' Equity:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl_78524e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl_78524e" xml:lang="en-US">Common Stock; Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl_a32869" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_a32869" xml:lang="en-US">Common Stock; Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl_937b20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl_937b20" xml:lang="en-US">Common Stock; Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl_43fa9d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl_43fa9d" xml:lang="en-US">Common Stock; Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_67ca7d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_67ca7d" xml:lang="en-US">Cumulative Convertible Preferred Stock; Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PreferredStockParOrStatedValue" xlink:label="tomz_PreferredStockParOrStatedValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PreferredStockParOrStatedValue" xlink:to="tomz_PreferredStockParOrStatedValue_lbl_bb3125" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PreferredStockParOrStatedValue_lbl_bb3125" xml:lang="en-US">Cumulative Convertible Preferred Stock; Stated Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl_204b19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_204b19" xml:lang="en-US">Cumulative Convertible Preferred Stock; Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl_72c1ac" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_72c1ac" xml:lang="en-US">Cumulative Convertible Preferred Stock; Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl_498f0b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl_498f0b" xml:lang="en-US">Cumulative Convertible Preferred Stock; Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl_078b16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl_078b16" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl_7b115d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Revenues_lbl_7b115d" xml:lang="en-US">Sales, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl_ac5b23" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfRevenue_lbl_ac5b23" xml:lang="en-US">Cost of Sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_f179f0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl_f179f0" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_lbl_4" xml:lang="en-US">[Gross Profit]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract_lbl_f5c2a6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostsAndExpensesAbstract_lbl_f5c2a6" xml:lang="en-US">Operating Expenses:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProfessionalFees" xlink:label="us-gaap_ProfessionalFees" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProfessionalFees" xlink:to="us-gaap_ProfessionalFees_lbl_59c7b7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProfessionalFees_lbl_59c7b7" xml:lang="en-US">Professional Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl_f62d4c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepreciationAndAmortization_lbl_f62d4c" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingExpense" xlink:label="us-gaap_SellingExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingExpense" xlink:to="us-gaap_SellingExpense_lbl_80b21a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingExpense_lbl_80b21a" xml:lang="en-US">Selling Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl_40d1f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl_40d1f4" xml:lang="en-US">Research and Development</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ConsultingFees" xlink:label="tomz_ConsultingFees" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConsultingFees" xlink:to="tomz_ConsultingFees_lbl_2f387b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConsultingFees_lbl_2f387b" xml:lang="en-US">Consulting Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherGeneralAndAdministrativeExpense" xlink:label="us-gaap_OtherGeneralAndAdministrativeExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherGeneralAndAdministrativeExpense" xlink:to="us-gaap_OtherGeneralAndAdministrativeExpense_lbl_0f56fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherGeneralAndAdministrativeExpense_lbl_0f56fb" xml:lang="en-US">General and Administrative</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl_e122c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl_e122c0" xml:lang="en-US">Total Operating Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpenses_lbl_12" xml:lang="en-US">[Operating Expenses]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl_9e782b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl_9e782b" xml:lang="en-US">Income (loss) from Operations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl_13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_lbl_13" xml:lang="en-US">[Operating Income (Loss)]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIncomeAbstract" xlink:label="us-gaap_OtherIncomeAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncomeAbstract" xlink:to="us-gaap_OtherIncomeAbstract_lbl_f2f560" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncomeAbstract_lbl_f2f560" xml:lang="en-US">Other Income (Expense):</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:to="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl_9ca93c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl_9ca93c" xml:lang="en-US">Gain Upon Debt Extinguishment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeOther" xlink:label="us-gaap_InterestIncomeOther" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeOther" xlink:to="us-gaap_InterestIncomeOther_lbl_c643e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeOther_lbl_c643e7" xml:lang="en-US">Interest Income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl_013360" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpense_lbl_013360" xml:lang="en-US">Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpense_lbl_17" xml:lang="en-US">[Interest Expense]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl_011f98" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl_011f98" xml:lang="en-US">Total Other Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl_18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl_18" xml:lang="en-US">[Nonoperating Income (Expense)]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_25606a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_25606a" xml:lang="en-US">Income (loss) before income taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_19" xml:lang="en-US">[Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl_754eeb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl_754eeb" xml:lang="en-US">Provision for Income Taxes (Note 16)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_7cab26" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_7cab26" xml:lang="en-US">Net Income (loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_21" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLoss_lbl_21" xml:lang="en-US">[Net Income (Loss) Attributable to Parent]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl_82e227" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl_82e227" xml:lang="en-US">Net income (loss) Per Common Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl_9922f2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl_9922f2" xml:lang="en-US">Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl_543f15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_543f15" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_f4b3f2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_f4b3f2" xml:lang="en-US">Basic Weighted Average Common Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_c09005" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_c09005" xml:lang="en-US">Diluted Weighted Average Common Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl_625521" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl_625521" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl_f74646" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl_f74646" xml:lang="en-US">Statement Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="tomz_SeriesAPreferredStocksMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SeriesAPreferredStocksMember" xlink:to="tomz_SeriesAPreferredStocksMember_lbl_a4f520" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SeriesAPreferredStocksMember_lbl_a4f520" xml:lang="en-US">Series A Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl_9bc21b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl_9bc21b" xml:lang="en-US">Common Stock</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl_296bd2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl_296bd2" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl_24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl_24" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl_a289b8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl_a289b8" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_ba0b05" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharesIssued_lbl_ba0b05" xml:lang="en-US">Balance, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesIssued" xlink:label="us-gaap_SharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesIssued_lbl_2" xml:lang="en-US">[Shares, Issued]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_242326" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl_242326" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityCompensation" xlink:label="tomz_EquityCompensation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquityCompensation" xlink:to="tomz_EquityCompensation_lbl_372a48" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityCompensation_lbl_372a48" xml:lang="en-US">Equity Compensation</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuedForServicesProvidedShares" xlink:label="tomz_CommonStockIssuedForServicesProvidedShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockIssuedForServicesProvidedShares" xlink:to="tomz_CommonStockIssuedForServicesProvidedShares_lbl_b6b1be" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIssuedForServicesProvidedShares_lbl_b6b1be" xml:lang="en-US">Common Stock Issued for Services Provided, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuedForServicesProvidedAmount" xlink:label="tomz_CommonStockIssuedForServicesProvidedAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockIssuedForServicesProvidedAmount" xlink:to="tomz_CommonStockIssuedForServicesProvidedAmount_lbl_5ec8dd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIssuedForServicesProvidedAmount_lbl_5ec8dd" xml:lang="en-US">Common Stock Issued for Services Provided, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_09920a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_09920a" xml:lang="en-US">Common Stock Issued in Private Placement, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl_6ec40a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl_6ec40a" xml:lang="en-US">Common Stock Issued in Private Placement, amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_baa52e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_baa52e" xml:lang="en-US">Net (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsAndOptionsExercisedShares" xlink:label="tomz_WarrantsAndOptionsExercisedShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsAndOptionsExercisedShares" xlink:to="tomz_WarrantsAndOptionsExercisedShares_lbl_9e2a44" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsAndOptionsExercisedShares_lbl_9e2a44" xml:lang="en-US">Warrants and Options Exercised, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsAndOptionsExercisedAmount" xlink:label="tomz_WarrantsAndOptionsExercisedAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsAndOptionsExercisedAmount" xlink:to="tomz_WarrantsAndOptionsExercisedAmount_lbl_e29b98" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsAndOptionsExercisedAmount_lbl_e29b98" xml:lang="en-US">Warrants and Options Exercised, amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_a7f203" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharesIssued_lbl_a7f203" xml:lang="en-US">Balance, shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_d12ca5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl_d12ca5" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl_a90bed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl_a90bed" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_f6b4eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_f6b4eb" xml:lang="en-US">Cash Flow From Operating Activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_922161" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_922161" xml:lang="en-US">Net Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_c46fe9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_c46fe9" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Net Cash Provided by (Used) In Operating Activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherDepreciationAndAmortization" xlink:to="us-gaap_OtherDepreciationAndAmortization_lbl_9e3917" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherDepreciationAndAmortization_lbl_9e3917" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherDepreciationAndAmortization" xlink:label="us-gaap_OtherDepreciationAndAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherDepreciationAndAmortization" xlink:to="us-gaap_OtherDepreciationAndAmortization_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherDepreciationAndAmortization_lbl_5" xml:lang="en-US">[Other Depreciation and Amortization]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl_356e4e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl_356e4e" xml:lang="en-US">Amortization of Right of Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:to="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_e83613" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_e83613" xml:lang="en-US">Amortization of Software Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityCompensationExpense" xlink:label="tomz_EquityCompensationExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquityCompensationExpense" xlink:to="tomz_EquityCompensationExpense_lbl_903d8d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityCompensationExpense_lbl_903d8d" xml:lang="en-US">Equity Compensation Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:to="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims_lbl_c578ac" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims_lbl_c578ac" xml:lang="en-US">Value of Equity Issued for Services</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_lbl_c61b64" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_lbl_c61b64" xml:lang="en-US">Reserve for Bad Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryLIFOReservePeriodCharge" xlink:label="us-gaap_InventoryLIFOReservePeriodCharge" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryLIFOReservePeriodCharge" xlink:to="us-gaap_InventoryLIFOReservePeriodCharge_lbl_91034e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryLIFOReservePeriodCharge_lbl_91034e" xml:lang="en-US">Inventory Reserve</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:to="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl_c23651" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl_c23651" xml:lang="en-US">Gain Upon Debt Extinguishment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_lbl_39bbed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_lbl_39bbed" xml:lang="en-US">Changes in Operating Assets and Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DecreaseIncreaseInAbstract" xlink:label="tomz_DecreaseIncreaseInAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DecreaseIncreaseInAbstract" xlink:to="tomz_DecreaseIncreaseInAbstract_lbl_9b1a5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DecreaseIncreaseInAbstract_lbl_9b1a5d" xml:lang="en-US">Decrease (Increase) in:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_a3a9da" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_a3a9da" xml:lang="en-US">Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl_e85e1e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl_e85e1e" xml:lang="en-US">Inventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_c0fdf8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_c0fdf8" xml:lang="en-US">Prepaid Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_17" xml:lang="en-US">[Increase (Decrease) in Prepaid Expense]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInDeposits" xlink:label="us-gaap_IncreaseDecreaseInDeposits" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeposits" xlink:to="us-gaap_IncreaseDecreaseInDeposits_lbl_0fbaa7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDeposits_lbl_0fbaa7" xml:lang="en-US">Vendor Deposits</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_lbl_abe03b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl_abe03b" xml:lang="en-US">Other Receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl_19" xml:lang="en-US">[Increase (Decrease) in Other Receivables]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl_054ced" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl_054ced" xml:lang="en-US">Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl_20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl_20" xml:lang="en-US">[Increase (Decrease) in Other Operating Assets]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncreaseDecreaseInAbstract" xlink:label="tomz_IncreaseDecreaseInAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IncreaseDecreaseInAbstract" xlink:to="tomz_IncreaseDecreaseInAbstract_lbl_3d8f2a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IncreaseDecreaseInAbstract_lbl_3d8f2a" xml:lang="en-US">Increase (Decrease) in:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_d3fa20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_d3fa20" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_22" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_22" xml:lang="en-US">[Increase (Decrease) in Accounts Payable]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl_458d3d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl_458d3d" xml:lang="en-US">Accrued Expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:to="us-gaap_IncreaseDecreaseInCustomerDeposits_lbl_42b23a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInCustomerDeposits_lbl_42b23a" xml:lang="en-US">Deferred Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:label="us-gaap_IncreaseDecreaseInCustomerDeposits" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:to="us-gaap_IncreaseDecreaseInCustomerDeposits_lbl_24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInCustomerDeposits_lbl_24" xml:lang="en-US">[Increase (Decrease) in Customer Deposits]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncreaseDecreaseInLeaseLiabilities" xlink:label="tomz_IncreaseDecreaseInLeaseLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IncreaseDecreaseInLeaseLiabilities" xlink:to="tomz_IncreaseDecreaseInLeaseLiabilities_lbl_88eff1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IncreaseDecreaseInLeaseLiabilities_lbl_88eff1" xml:lang="en-US">Lease Liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_dbd68e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_dbd68e" xml:lang="en-US">Net Cash Provided (Used) in Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_26" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_26" xml:lang="en-US">[Net Cash Provided by (Used in) Operating Activities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_f713c8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_f713c8" xml:lang="en-US">Cash Flow From Investing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CapitalizedPatentAndTrademarkCosts" xlink:label="tomz_CapitalizedPatentAndTrademarkCosts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CapitalizedPatentAndTrademarkCosts" xlink:to="tomz_CapitalizedPatentAndTrademarkCosts_lbl_5e710a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CapitalizedPatentAndTrademarkCosts_lbl_5e710a" xml:lang="en-US">Capitalized Patent and Trademark Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PurchaseOfPropertyAndEquipment" xlink:label="tomz_PurchaseOfPropertyAndEquipment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PurchaseOfPropertyAndEquipment" xlink:to="tomz_PurchaseOfPropertyAndEquipment_lbl_959e30" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PurchaseOfPropertyAndEquipment_lbl_959e30" xml:lang="en-US">Purchase of Property and Equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_c09b65" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_c09b65" xml:lang="en-US">Net Cash (Used) in Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_30" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_30" xml:lang="en-US">[Net Cash Provided by (Used in) Investing Activities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_92ee5b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_92ee5b" xml:lang="en-US">Cash Flow From Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="us-gaap_ProceedsFromIssuanceOfWarrants" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfWarrants" xlink:to="us-gaap_ProceedsFromIssuanceOfWarrants_lbl_ef1408" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromIssuanceOfWarrants_lbl_ef1408" xml:lang="en-US">Proceeds from Issuance of Stock and Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl_f29a4d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl_f29a4d" xml:lang="en-US">Proceeds from Exercise of Options and Warrants</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_8dcb48" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_8dcb48" xml:lang="en-US">Net Cash From Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_34" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_34" xml:lang="en-US">[Net Cash Provided by (Used in) Financing Activities]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_b9bed0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_b9bed0" xml:lang="en-US">Increase (Decrease) In Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_35" xml:lang="en-US">[Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Excluding Exchange Rate Effect]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_a7ba52" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_a7ba52" xml:lang="en-US">Cash and Cash Equivalents - Beginning</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_36" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_36" xml:lang="en-US">[Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_a47ae6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_a47ae6" xml:lang="en-US">Cash and Cash Equivalents - Ending</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl_bc83e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl_bc83e7" xml:lang="en-US">Supplemental Cash Flow Information:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl_c746ff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl_c746ff" xml:lang="en-US">Cash Paid (Refunded) for Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_209738" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_209738" xml:lang="en-US">Non-Cash Investing and Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets" xlink:label="tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets" xlink:to="tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets_lbl_1b9180" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets_lbl_1b9180" xml:lang="en-US">Patent and trademark costs reclassified from Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl_804258" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl_804258" xml:lang="en-US">DESCRIPTION OF BUSINESS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NatureOfOperations" xlink:to="us-gaap_NatureOfOperations_lbl_59b288" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NatureOfOperations_lbl_59b288" xml:lang="en-US">DESCRIPTION OF BUSINESS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NatureOfOperations" xlink:label="us-gaap_NatureOfOperations" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NatureOfOperations" xlink:to="us-gaap_NatureOfOperations_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NatureOfOperations_lbl_2" xml:lang="en-US">Nature of Operations [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl_d8bdf7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl_d8bdf7" xml:lang="en-US">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2512e8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2512e8" xml:lang="en-US">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl_a339ad" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl_a339ad" xml:lang="en-US">INVENTORIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl_b43a49" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl_b43a49" xml:lang="en-US">INVENTORIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl_2" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:to="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl_3c960f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl_3c960f" xml:lang="en-US">VENDOR DEPOSITS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_VendorDepositsTextBlock" xlink:to="tomz_VendorDepositsTextBlock_lbl_5ec4b7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_VendorDepositsTextBlock_lbl_5ec4b7" xml:lang="en-US">VENDOR DEPOSITS</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_VendorDepositsTextBlock" xlink:label="tomz_VendorDepositsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_VendorDepositsTextBlock" xlink:to="tomz_VendorDepositsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_VendorDepositsTextBlock_lbl_2" xml:lang="en-US">[VENDOR DEPOSITS]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl_8eb935" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl_8eb935" xml:lang="en-US">PROPERTY AND EQUIPMENT</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_7b3667" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_7b3667" xml:lang="en-US">PROPERTY AND EQUIPMENT</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_2" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl_19be3c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl_19be3c" xml:lang="en-US">INTANGIBLE ASSETS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_01ae56" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_01ae56" xml:lang="en-US">INTANGIBLE ASSETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_2" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl_d5f3be" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesAbstract_lbl_d5f3be" xml:lang="en-US">LEASES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_f8a62a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_f8a62a" xml:lang="en-US">LEASES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_2" xml:lang="en-US">Leases of Lessee Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="us-gaap_CapitalizedComputerSoftwareNetAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:to="us-gaap_CapitalizedComputerSoftwareNetAbstract_lbl_fc9364" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareNetAbstract_lbl_fc9364" xml:lang="en-US">CAPITALIZED SOFTWARE DEVELOPMENT COSTS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_lbl_b8ed38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_lbl_b8ed38" xml:lang="en-US">CAPITALIZED SOFTWARE DEVELOPMENT COSTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_lbl_2" xml:lang="en-US">Research, Development, and Computer Software Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="us-gaap_RisksAndUncertaintiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RisksAndUncertaintiesAbstract" xlink:to="us-gaap_RisksAndUncertaintiesAbstract_lbl_773846" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RisksAndUncertaintiesAbstract_lbl_773846" xml:lang="en-US">CLOUD COMPUTING SERVICE CONTRACT</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:to="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_31b60e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_31b60e" xml:lang="en-US">CLOUD COMPUTING SERVICE CONTRACT</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:to="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_2" xml:lang="en-US">[CLOUD COMPUTING SERVICE CONTRACT]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl_aea63b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl_aea63b" xml:lang="en-US">SHAREHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_4d3989" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_4d3989" xml:lang="en-US">COMMITMENTS AND CONTINGENCIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_63bcae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_63bcae" xml:lang="en-US">COMMITMENTS AND CONTINGENCIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_2" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_lbl_2f0be2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_lbl_2f0be2" xml:lang="en-US">CONTRACTS AND AGREEMENTS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ContractsAndAgreementsTextBlock" xlink:to="tomz_ContractsAndAgreementsTextBlock_lbl_ca056f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ContractsAndAgreementsTextBlock_lbl_ca056f" xml:lang="en-US">CONTRACTS AND AGREEMENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ContractsAndAgreementsTextBlock" xlink:label="tomz_ContractsAndAgreementsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ContractsAndAgreementsTextBlock" xlink:to="tomz_ContractsAndAgreementsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ContractsAndAgreementsTextBlock_lbl_2" xml:lang="en-US">[CONTRACTS AND AGREEMENTS]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract_lbl_5d30a8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract_lbl_5d30a8" xml:lang="en-US">ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:to="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_0b0bdc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_0b0bdc" xml:lang="en-US">ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:to="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_2" xml:lang="en-US">Accounts Payable, Accrued Liabilities, and Other Liabilities Disclosure, Current [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl_436e26" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureAbstract_lbl_436e26" xml:lang="en-US">ACCRUED WARRANTY</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GuaranteesTextBlock" xlink:to="us-gaap_GuaranteesTextBlock_lbl_2d1811" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GuaranteesTextBlock_lbl_2d1811" xml:lang="en-US">ACCRUED WARRANTY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GuaranteesTextBlock" xlink:label="us-gaap_GuaranteesTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GuaranteesTextBlock" xlink:to="us-gaap_GuaranteesTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GuaranteesTextBlock_lbl_2" xml:lang="en-US">Guarantees [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl_b17e0a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl_b17e0a" xml:lang="en-US">INCOME TAXES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl_0b0703" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl_0b0703" xml:lang="en-US">INCOME TAXES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl_2" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:to="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_208cbf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_208cbf" xml:lang="en-US">CUSTOMER CONCENTRATION</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:to="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_2" xml:lang="en-US">Concentration Risk Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl_0adbc5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsAbstract_lbl_0adbc5" xml:lang="en-US">SUBSEQUENT EVENTS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl_683eb3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_683eb3" xml:lang="en-US">SUBSEQUENT EVENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_2" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl_6ae376" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl_6ae376" xml:lang="en-US">Principles of Consolidation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl_f9aacb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl_f9aacb" xml:lang="en-US">Reclassification of Accounts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl_91c9c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UseOfEstimates_lbl_91c9c0" xml:lang="en-US">Use of Estimates</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:to="us-gaap_FairValueMeasurementPolicyPolicyTextBlock_lbl_a2a320" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock_lbl_a2a320" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_7c6b61" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_7c6b61" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_6" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesPolicyTextBlock" xlink:to="us-gaap_ReceivablesPolicyTextBlock_lbl_245035" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ReceivablesPolicyTextBlock_lbl_245035" xml:lang="en-US">Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="us-gaap_ReceivablesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesPolicyTextBlock" xlink:to="us-gaap_ReceivablesPolicyTextBlock_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesPolicyTextBlock_lbl_7" xml:lang="en-US">Receivable [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl_089126" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl_089126" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_1e2c80" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_1e2c80" xml:lang="en-US">Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl_974cc3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl_974cc3" xml:lang="en-US">Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl_807b5e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl_807b5e" xml:lang="en-US">Capitalized Software Development Costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsPayablePolicyTextBlock" xlink:to="tomz_AccountsPayablePolicyTextBlock_lbl_dc2496" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_AccountsPayablePolicyTextBlock_lbl_dc2496" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AccountsPayablePolicyTextBlock" xlink:label="tomz_AccountsPayablePolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsPayablePolicyTextBlock" xlink:to="tomz_AccountsPayablePolicyTextBlock_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AccountsPayablePolicyTextBlock_lbl_12" xml:lang="en-US">[Accounts Payable]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyPolicy" xlink:label="us-gaap_ExtendedProductWarrantyPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyPolicy" xlink:to="us-gaap_ExtendedProductWarrantyPolicy_lbl_5a9f10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyPolicy_lbl_5a9f10" xml:lang="en-US">Accrued Warranties</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl_a680c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl_a680c6" xml:lang="en-US">Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl_dd31ff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl_dd31ff" xml:lang="en-US">Net Income (Loss) Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_2a605d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_2a605d" xml:lang="en-US">Revenue Recognition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_a13f87" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_a13f87" xml:lang="en-US">Equity Compensation Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_17" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl_4828da" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl_4828da" xml:lang="en-US">Concentrations of Credit Risk</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" xlink:label="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" xlink:to="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets_lbl_7c0af6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets_lbl_7c0af6" xml:lang="en-US">Long-Lived Assets Including Acquired Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="us-gaap_AdvertisingCostsPolicyTextBlock_lbl_759472" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock_lbl_759472" xml:lang="en-US">Advertising and Promotional Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl_40572d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl_40572d" xml:lang="en-US">Research and Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_lbl_be9313" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl_be9313" xml:lang="en-US">Business Segments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_08920c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_08920c" xml:lang="en-US">Recent Accounting Pronouncements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock" xlink:to="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock_lbl_9a03c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock_lbl_9a03c0" xml:lang="en-US">Net Income (Loss) Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock" xlink:label="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock" xlink:to="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock_lbl_2" xml:lang="en-US">Impairment Effects on Earnings Per Share [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_577fc0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_577fc0" xml:lang="en-US">Disaggregation of Revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_047634" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_047634" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_2" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_53c1c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_53c1c6" xml:lang="en-US">Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_2" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl_3a6d9b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl_3a6d9b" xml:lang="en-US">Definite Life Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:to="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_lbl_fa64f5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_lbl_fa64f5" xml:lang="en-US">Indefinite Life Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl_10d1cb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl_10d1cb" xml:lang="en-US">Approximate Future Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock_lbl_5e264e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl_5e264e" xml:lang="en-US">Lease Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OperatingLeaseLiabilityTableTextBlock" xlink:label="tomz_OperatingLeaseLiabilityTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OperatingLeaseLiabilityTableTextBlock" xlink:to="tomz_OperatingLeaseLiabilityTableTextBlock_lbl_feacf2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OperatingLeaseLiabilityTableTextBlock_lbl_feacf2" xml:lang="en-US">Operating Lease</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_LeaseOtherInformationTableTextBlock" xlink:label="tomz_LeaseOtherInformationTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_LeaseOtherInformationTableTextBlock" xlink:to="tomz_LeaseOtherInformationTableTextBlock_lbl_d03804" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_LeaseOtherInformationTableTextBlock_lbl_d03804" xml:lang="en-US">Other Information Related to Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:to="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl_3dc677" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl_3dc677" xml:lang="en-US">Supplemental Cash Flow Information related to leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:label="us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:to="us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_lbl_c9df7f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_lbl_c9df7f" xml:lang="en-US">Maturities of Lease Payments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" xlink:to="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock_lbl_85c00c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock_lbl_85c00c" xml:lang="en-US">Capitalized Software Development Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" xlink:label="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" xlink:to="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock_lbl_2" xml:lang="en-US">[Capitalized Software Development Costs]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock_lbl_15c095" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock_lbl_15c095" xml:lang="en-US">Stock Options Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl_0a35e5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl_0a35e5" xml:lang="en-US">Options Outstanding and Exercisable by Price Range</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:to="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl_94e4b0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl_94e4b0" xml:lang="en-US">Stock Warrants Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsOutstandingAndExercisableByPriceRange" xlink:label="tomz_WarrantsOutstandingAndExercisableByPriceRange" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsOutstandingAndExercisableByPriceRange" xlink:to="tomz_WarrantsOutstandingAndExercisableByPriceRange_lbl_9961db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsOutstandingAndExercisableByPriceRange_lbl_9961db" xml:lang="en-US">Warrants Outstanding and Exercisable by Price Range</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ApproximateMinimumContractPaymentsTableTextBlock" xlink:label="tomz_ApproximateMinimumContractPaymentsTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ApproximateMinimumContractPaymentsTableTextBlock" xlink:to="tomz_ApproximateMinimumContractPaymentsTableTextBlock_lbl_390a6e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ApproximateMinimumContractPaymentsTableTextBlock_lbl_390a6e" xml:lang="en-US">Approximate Minimum Contract Payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_fc1034" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_fc1034" xml:lang="en-US">Accrued Expenses and Other Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:to="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_lbl_4034a0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_lbl_4034a0" xml:lang="en-US">Warranty Reserve Activity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl_c49bf7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl_c49bf7" xml:lang="en-US">Income Tax Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl_0e17e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl_0e17e4" xml:lang="en-US">Net Income (Loss) Before Income Tax</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl_86cacd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl_86cacd" xml:lang="en-US">Effective Income Tax Rate Reconciliation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl_9b068e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl_9b068e" xml:lang="en-US">Deferred Income Tax Assets (Liabilities)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_NetLossAttributableToCommonShareholders" xlink:label="tomz_NetLossAttributableToCommonShareholders" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_NetLossAttributableToCommonShareholders" xlink:to="tomz_NetLossAttributableToCommonShareholders_lbl_ffe709" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetLossAttributableToCommonShareholders_lbl_ffe709" xml:lang="en-US">Net Income (loss) Attributable To Common Shareholders</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl_bd5716" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl_bd5716" xml:lang="en-US">Weighted Average Number Of Common Shares Outstanding:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_b0d771" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_b0d771" xml:lang="en-US">Basic</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_b48cfc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_b48cfc" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl_752800" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl_752800" xml:lang="en-US">Net Income (loss) Attributable To Common Shareholders Per Share:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Basic" xlink:to="tomz_Basic_lbl_80b798" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_Basic_lbl_80b798" xml:lang="en-US">Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Basic" xlink:label="tomz_Basic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Basic" xlink:to="tomz_Basic_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Basic_lbl_8" xml:lang="en-US">[Basic]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Diluted" xlink:to="tomz_Diluted_lbl_20ce6b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_Diluted_lbl_20ce6b" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Diluted" xlink:label="tomz_Diluted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Diluted" xlink:to="tomz_Diluted_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Diluted_lbl_9" xml:lang="en-US">[Diluted]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_e15633" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_e15633" xml:lang="en-US">Basic Weighted-average Shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageNumberOfDilutedShareOutstanding1" xlink:label="tomz_WeightedAverageNumberOfDilutedShareOutstanding1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageNumberOfDilutedShareOutstanding1" xlink:to="tomz_WeightedAverageNumberOfDilutedShareOutstanding1_lbl_6c3439" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageNumberOfDilutedShareOutstanding1_lbl_6c3439" xml:lang="en-US">Diluted Weighted Average Shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl_746686" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareBasic_lbl_746686" xml:lang="en-US">Basic</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl_ea4c99" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_ea4c99" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_StatementBusinessSegmentsAxis_lbl_ef4d8b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl_ef4d8b" xml:lang="en-US">Statement Business Segments Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis_lbl_f9b2fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StatementGeographicalAxis_lbl_f9b2fb" xml:lang="en-US">Statement Geographical Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SteraMistPRoductMember" xlink:label="tomz_SteraMistPRoductMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SteraMistPRoductMember" xlink:to="tomz_SteraMistPRoductMember_lbl_4a0685" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SteraMistPRoductMember_lbl_4a0685" xml:lang="en-US">SteraMist PRoduct Member</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ServiceAndTrainingMember" xlink:label="tomz_ServiceAndTrainingMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ServiceAndTrainingMember" xlink:to="tomz_ServiceAndTrainingMember_lbl_c39011" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ServiceAndTrainingMember_lbl_c39011" xml:lang="en-US">Service And Training Member</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_UnitedStatesMember" xlink:label="tomz_UnitedStatesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_UnitedStatesMember" xlink:to="tomz_UnitedStatesMember_lbl_9dd094" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_UnitedStatesMember_lbl_9dd094" xml:lang="en-US">United States Member</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_InternationalMember" xlink:label="tomz_InternationalMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InternationalMember" xlink:to="tomz_InternationalMember_lbl_a9b50c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InternationalMember_lbl_a9b50c" xml:lang="en-US">International Member</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GeographicRegionMember" xlink:label="tomz_GeographicRegionMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GeographicRegionMember" xlink:to="tomz_GeographicRegionMember_lbl_1f120d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GeographicRegionMember_lbl_1f120d" xml:lang="en-US">Geographic Region Member</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl_60b327" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Revenues_lbl_60b327" xml:lang="en-US">Sales, net</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ChangesInRevenue" xlink:label="tomz_ChangesInRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ChangesInRevenue" xlink:to="tomz_ChangesInRevenue_lbl_ce11ae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ChangesInRevenue_lbl_ce11ae" xml:lang="en-US">Changes In Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl_5a8057" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl_5a8057" xml:lang="en-US">Property Plant And Equipment By Type Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl_632648" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MajorCustomersAxis_lbl_632648" xml:lang="en-US">Major Customers Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="us-gaap_ExtinguishmentOfDebtAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtinguishmentOfDebtAxis" xlink:to="us-gaap_ExtinguishmentOfDebtAxis_lbl_be33ae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtinguishmentOfDebtAxis_lbl_be33ae" xml:lang="en-US">Extinguishment Of Debt Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl_8860cb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl_8860cb" xml:lang="en-US">Income Statement Location Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="us-gaap_ClassOfWarrantOrRightAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightAxis" xlink:to="us-gaap_ClassOfWarrantOrRightAxis_lbl_16c567" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightAxis_lbl_16c567" xml:lang="en-US">Class Of Warrant Or Right Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl_1303c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl_1303c4" xml:lang="en-US">Plan Name Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl_2bf763" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl_2bf763" xml:lang="en-US">Related Party Transactions By Related Party Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SoftwareDevelopmentMember" xlink:label="us-gaap_SoftwareDevelopmentMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SoftwareDevelopmentMember" xlink:to="us-gaap_SoftwareDevelopmentMember_lbl_ed3d71" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SoftwareDevelopmentMember_lbl_ed3d71" xml:lang="en-US">Software Development [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TwoVendorsMember" xlink:label="tomz_TwoVendorsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TwoVendorsMember" xlink:to="tomz_TwoVendorsMember_lbl_24db7c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoVendorsMember_lbl_24db7c" xml:lang="en-US">Two Vendors</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableMember" xlink:to="us-gaap_AccountsPayableMember_lbl_72593f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableMember_lbl_72593f" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableMember" xlink:label="us-gaap_AccountsPayableMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableMember" xlink:to="us-gaap_AccountsPayableMember_lbl_154" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableMember_lbl_154" xml:lang="en-US">Accounts Payable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl_35080e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfSalesMember_lbl_35080e" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsMember" xlink:label="tomz_WarrantsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsMember" xlink:to="tomz_WarrantsMember_lbl_2fc641" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsMember_lbl_2fc641" xml:lang="en-US">Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionsMember" xlink:label="tomz_StockOptionsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockOptionsMember" xlink:to="tomz_StockOptionsMember_lbl_fa42b7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionsMember_lbl_fa42b7" xml:lang="en-US">Stock Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="tomz_EquityIncentivePlanOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquityIncentivePlanOneMember" xlink:to="tomz_EquityIncentivePlanOneMember_lbl_59abde" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityIncentivePlanOneMember_lbl_59abde" xml:lang="en-US">2016 Equity Incentive Plan</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_DirectorMember" xlink:to="srt_DirectorMember_lbl_4f5420" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_DirectorMember_lbl_4f5420" xml:lang="en-US">Director [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl_9e832a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl_9e832a" xml:lang="en-US">Bad Debt Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_dc1e97" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_dc1e97" xml:lang="en-US">Allowance For Doubtful Accounts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_a8b8e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryValuationReserves_lbl_a8b8e6" xml:lang="en-US">Inventory Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryValuationReserves_lbl_4" xml:lang="en-US">[Inventory Valuation Reserves]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl_a5bccc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl_a5bccc" xml:lang="en-US">Warranty Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingExpense" xlink:label="us-gaap_AdvertisingExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdvertisingExpense" xlink:to="us-gaap_AdvertisingExpense_lbl_71ed94" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdvertisingExpense_lbl_71ed94" xml:lang="en-US">Advertising And Promotional Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ResearchAndDevelopmentsExpense" xlink:label="tomz_ResearchAndDevelopmentsExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ResearchAndDevelopmentsExpense" xlink:to="tomz_ResearchAndDevelopmentsExpense_lbl_c775e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ResearchAndDevelopmentsExpense_lbl_c775e7" xml:lang="en-US">Research And Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="us-gaap_FederalDepositInsuranceCorporationPremiumExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:to="us-gaap_FederalDepositInsuranceCorporationPremiumExpense_lbl_26ace1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FederalDepositInsuranceCorporationPremiumExpense_lbl_26ace1" xml:lang="en-US">Cash Balances At Financial Institutions</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuableUponConversionOfOutstandingShares" xlink:label="tomz_CommonStockIssuableUponConversionOfOutstandingShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockIssuableUponConversionOfOutstandingShares" xlink:to="tomz_CommonStockIssuableUponConversionOfOutstandingShares_lbl_cf61b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIssuableUponConversionOfOutstandingShares_lbl_cf61b6" xml:lang="en-US">Common Stock Issuable Upon Conversion Of Outstanding Shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" xlink:label="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" xlink:to="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts_lbl_de7758" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts_lbl_de7758" xml:lang="en-US">Amortization Of Capitalized Software Development Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ConcentrationRiskPercentage" xlink:label="tomz_ConcentrationRiskPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConcentrationRiskPercentage" xlink:to="tomz_ConcentrationRiskPercentage_lbl_c7ee75" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConcentrationRiskPercentage_lbl_c7ee75" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_0d4047" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_0d4047" xml:lang="en-US">Potentially Dilutive Securities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl_2aae0f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_2aae0f" xml:lang="en-US">Preferred Stock Shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl_9dff76" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_9dff76" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockSharesIssuedVested" xlink:label="tomz_CommonStockSharesIssuedVested" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockSharesIssuedVested" xlink:to="tomz_CommonStockSharesIssuedVested_lbl_390724" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesIssuedVested_lbl_390724" xml:lang="en-US">Common Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoods" xlink:to="us-gaap_InventoryFinishedGoods_lbl_8dfd1c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryFinishedGoods_lbl_8dfd1c" xml:lang="en-US">Finished Goods</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterials" xlink:label="us-gaap_InventoryRawMaterials" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterials" xlink:to="us-gaap_InventoryRawMaterials_lbl_63fdd1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryRawMaterials_lbl_63fdd1" xml:lang="en-US">Raw Materials</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_f1771c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InventoryValuationReserves_lbl_f1771c" xml:lang="en-US">Inventory Reserve</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl_e28c08" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryNet_lbl_e28c08" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Deposits" xlink:label="us-gaap_Deposits" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Deposits" xlink:to="us-gaap_Deposits_lbl_c91075" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Deposits_lbl_c91075" xml:lang="en-US">vendor deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FurnitureAndFixturesGross" xlink:label="us-gaap_FurnitureAndFixturesGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesGross" xlink:to="us-gaap_FurnitureAndFixturesGross_lbl_217998" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesGross_lbl_217998" xml:lang="en-US">Furniture And Fixtures</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Equipments" xlink:label="tomz_Equipments" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Equipments" xlink:to="tomz_Equipments_lbl_b4f092" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Equipments_lbl_b4f092" xml:lang="en-US">Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:to="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_36ab26" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_36ab26" xml:lang="en-US">Vehicles</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ComputerSoftware" xlink:label="tomz_ComputerSoftware" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ComputerSoftware" xlink:to="tomz_ComputerSoftware_lbl_f04ac6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ComputerSoftware_lbl_f04ac6" xml:lang="en-US">Computer And Software</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsGross" xlink:label="us-gaap_LeaseholdImprovementsGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsGross" xlink:to="us-gaap_LeaseholdImprovementsGross_lbl_2ea7e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseholdImprovementsGross_lbl_2ea7e6" xml:lang="en-US">Leasehold Improvements</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConstructionInProgressGross" xlink:label="us-gaap_ConstructionInProgressGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionInProgressGross" xlink:to="us-gaap_ConstructionInProgressGross_lbl_37bd79" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConstructionInProgressGross_lbl_37bd79" xml:lang="en-US">Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross" xlink:label="us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross" xlink:to="us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross_lbl_c28ab7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross_lbl_c28ab7" xml:lang="en-US">Capitalized Costs In Progress - Tooling And Molds</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl_c35ffc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl_c35ffc" xml:lang="en-US">Property And Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_07f58d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_07f58d" xml:lang="en-US">Less: Accumulated Depreciation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl_56e36f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_56e36f" xml:lang="en-US">Property And Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation_lbl_d5c17b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Depreciation_lbl_d5c17b" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AmortizationOfTenantImprovementAllowance" xlink:label="tomz_AmortizationOfTenantImprovementAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AmortizationOfTenantImprovementAllowance" xlink:to="tomz_AmortizationOfTenantImprovementAllowance_lbl_d31970" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AmortizationOfTenantImprovementAllowance_lbl_d31970" xml:lang="en-US">Amortization Of Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_e7e557" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_e7e557" xml:lang="en-US">Intellectual Property And Patents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_d852bb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_d852bb" xml:lang="en-US">Less: Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IntangibleAssetsNet" xlink:label="tomz_IntangibleAssetsNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IntangibleAssetsNet" xlink:to="tomz_IntangibleAssetsNet_lbl_0d74c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IntangibleAssetsNet_lbl_0d74c6" xml:lang="en-US">Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedTrademarks" xlink:label="us-gaap_IndefiniteLivedTrademarks" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndefiniteLivedTrademarks" xlink:to="us-gaap_IndefiniteLivedTrademarks_lbl_1ac67d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IndefiniteLivedTrademarks_lbl_1ac67d" xml:lang="en-US">Trademarks</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_c901a1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_c901a1" xml:lang="en-US">Total Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl_8f7f09" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl_8f7f09" xml:lang="en-US">Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl_f03374" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl_f03374" xml:lang="en-US">December 31, 2023</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl_6a2e4b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl_6a2e4b" xml:lang="en-US">December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl_2b2350" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl_2b2350" xml:lang="en-US">December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl_64fea7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl_64fea7" xml:lang="en-US">December 31, 2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl_c638fd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl_c638fd" xml:lang="en-US">December 31, 2027</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl_064352" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl_064352" xml:lang="en-US">Thereafter</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_e154a9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_e154a9" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_9" xml:lang="en-US">[Finite-Lived Intangible Assets, Net]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl_312cea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl_312cea" xml:lang="en-US">Amortization Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl_533182" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl_533182" xml:lang="en-US">Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl_4c93d4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_4c93d4" xml:lang="en-US">Operating Lease Right Of Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_LiabilitiesAbstract_lbl_4b6c18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAbstract_lbl_4b6c18" xml:lang="en-US">Liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_b101ea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_b101ea" xml:lang="en-US">Current Portion Of Long-term Operating Lease</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_cd87e9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_cd87e9" xml:lang="en-US">Long-term Operating Lease, Net Of Current Portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl_fc8093" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl_fc8093" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl_7" xml:lang="en-US">[Operating Lease, Liability]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense_lbl_a7ba91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseExpense_lbl_a7ba91" xml:lang="en-US">Operating Lease Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:label="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:to="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm_lbl_714542" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm_lbl_714542" xml:lang="en-US">Weighted-average Remaining Lease Term: Operating Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseDiscountRate" xlink:label="us-gaap_LesseeOperatingLeaseDiscountRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseDiscountRate" xlink:to="us-gaap_LesseeOperatingLeaseDiscountRate_lbl_950c5b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseDiscountRate_lbl_950c5b" xml:lang="en-US">Discount Rate: Operating Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:label="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:to="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm_lbl_b85617" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm_lbl_b85617" xml:lang="en-US">Cash Paid For Amounts Included In The Measurement Of Lease Liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_9c586f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_9c586f" xml:lang="en-US">December 31, 2023</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_2" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year One]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_7b618c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_7b618c" xml:lang="en-US">December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_3" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Two]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_b6703e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_b6703e" xml:lang="en-US">December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_4" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Three]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_529974" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_529974" xml:lang="en-US">December 31, 2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_5" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Four]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_d6d344" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_d6d344" xml:lang="en-US">December 31, 2027</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_6" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Five]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl_c53b19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl_c53b19" xml:lang="en-US">Thereafter</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl_7" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, after Year Five]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_79240d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_79240d" xml:lang="en-US">Total Minimum Lease Payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_5a71c8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_5a71c8" xml:lang="en-US">Less: Interest</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalLeaseObligationsCurrent" xlink:label="us-gaap_CapitalLeaseObligationsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalLeaseObligationsCurrent" xlink:to="us-gaap_CapitalLeaseObligationsCurrent_lbl_e071ba" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalLeaseObligationsCurrent_lbl_e071ba" xml:lang="en-US">Present Value Of Lease Obligations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_3ec959" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_3ec959" xml:lang="en-US">Less: Current Portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_691021" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_691021" xml:lang="en-US">Long-term Portion Of Lease Obligations</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermLease" xlink:label="tomz_TermLease" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TermLease" xlink:to="tomz_TermLease_lbl_4963b0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TermLease_lbl_4963b0" xml:lang="en-US">Term Lease</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AreaOfLand" xlink:label="us-gaap_AreaOfLand" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AreaOfLand" xlink:to="us-gaap_AreaOfLand_lbl_67716c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AreaOfLand_lbl_67716c" xml:lang="en-US">Area Of Lease Facility</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="us-gaap_OperatingLeasesRentExpenseNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesRentExpenseNet" xlink:to="us-gaap_OperatingLeasesRentExpenseNet_lbl_e9e9ae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesRentExpenseNet_lbl_e9e9ae" xml:lang="en-US">Annual Rent Lease</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_MaximumIncreasesRentPercentage" xlink:label="tomz_MaximumIncreasesRentPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MaximumIncreasesRentPercentage" xlink:to="tomz_MaximumIncreasesRentPercentage_lbl_f17f32" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MaximumIncreasesRentPercentage_lbl_f17f32" xml:lang="en-US">Increases Rent Percentage Escalation Clause</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WorkersCompensationDiscountPercent" xlink:label="us-gaap_WorkersCompensationDiscountPercent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WorkersCompensationDiscountPercent" xlink:to="us-gaap_WorkersCompensationDiscountPercent_lbl_d1787d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WorkersCompensationDiscountPercent_lbl_d1787d" xml:lang="en-US">Discount Rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:label="us-gaap_PaymentsForProceedsFromTenantAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:to="us-gaap_PaymentsForProceedsFromTenantAllowance_lbl_6ae94c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForProceedsFromTenantAllowance_lbl_6ae94c" xml:lang="en-US">Landlord Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareGross" xlink:label="us-gaap_CapitalizedComputerSoftwareGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareGross" xlink:to="us-gaap_CapitalizedComputerSoftwareGross_lbl_ca0907" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareGross_lbl_ca0907" xml:lang="en-US">Capitalized Software Development Costs, Gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" xlink:to="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization_lbl_bbde68" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization_lbl_bbde68" xml:lang="en-US">Less: Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" xlink:label="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" xlink:to="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization_lbl_3" xml:lang="en-US">[Capitalized Computer Software, Accumulated Amortization]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareNet" xlink:to="us-gaap_CapitalizedComputerSoftwareNet_lbl_263242" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CapitalizedComputerSoftwareNet_lbl_263242" xml:lang="en-US">Capitalized Software Development Costs, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="us-gaap_CapitalizedComputerSoftwareNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareNet" xlink:to="us-gaap_CapitalizedComputerSoftwareNet_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareNet_lbl_4" xml:lang="en-US">[Capitalized Computer Software, Net]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" xlink:to="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts_lbl_65f589" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts_lbl_65f589" xml:lang="en-US">Amortization of Capitalized Software Development Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ProceedsFromServiceContractOfReceivables" xlink:label="tomz_ProceedsFromServiceContractOfReceivables" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProceedsFromServiceContractOfReceivables" xlink:to="tomz_ProceedsFromServiceContractOfReceivables_lbl_d2b182" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProceedsFromServiceContractOfReceivables_lbl_d2b182" xml:lang="en-US">Annual payments on contract received</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseAndOtherAssets" xlink:label="us-gaap_PrepaidExpenseAndOtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssets" xlink:to="us-gaap_PrepaidExpenseAndOtherAssets_lbl_738a88" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssets_lbl_738a88" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AnnualPaymentsOnContractTerm" xlink:label="tomz_AnnualPaymentsOnContractTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AnnualPaymentsOnContractTerm" xlink:to="tomz_AnnualPaymentsOnContractTerm_lbl_47c425" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AnnualPaymentsOnContractTerm_lbl_47c425" xml:lang="en-US">Annual payments on contract term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:label="us-gaap_CostOfGoodsAndServicesSoldAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:to="us-gaap_CostOfGoodsAndServicesSoldAmortization_lbl_6cd88e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfGoodsAndServicesSoldAmortization_lbl_6cd88e" xml:lang="en-US">Amortization expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockWarrantMember" xlink:label="tomz_StockWarrantMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockWarrantMember" xlink:to="tomz_StockWarrantMember_lbl_bb06a1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockWarrantMember_lbl_bb06a1" xml:lang="en-US">Stock Warrant [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OutstandingBeginningOfPeriod" xlink:label="tomz_OutstandingBeginningOfPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OutstandingBeginningOfPeriod" xlink:to="tomz_OutstandingBeginningOfPeriod_lbl_1a1acc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OutstandingBeginningOfPeriod_lbl_1a1acc" xml:lang="en-US">Outstanding, beginning of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_a2f97a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_a2f97a" xml:lang="en-US">Granted</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_lbl_fa41df" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_lbl_fa41df" xml:lang="en-US">Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_lbl_4" xml:lang="en-US">[Exercised]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_lbl_7456b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_lbl_7456b6" xml:lang="en-US">Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_lbl_5" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OutstandingEndOfPeriod" xlink:label="tomz_OutstandingEndOfPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OutstandingEndOfPeriod" xlink:to="tomz_OutstandingEndOfPeriod_lbl_f0b3e3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OutstandingEndOfPeriod_lbl_f0b3e3" xml:lang="en-US">Outstanding, end of period</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceAbstract" xlink:label="tomz_WeightedAverageExercisePriceAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageExercisePriceAbstract" xlink:to="tomz_WeightedAverageExercisePriceAbstract_lbl_ad8dbd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceAbstract_lbl_ad8dbd" xml:lang="en-US">Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" xlink:label="tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" xlink:to="tomz_WeightedAverageExercisePriceOutstandingBeginningBalance_lbl_580b1e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceOutstandingBeginningBalance_lbl_580b1e" xml:lang="en-US">Weighted average exercise price outstanding, Beginning balance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceGranted" xlink:label="tomz_WeightedAverageExercisePriceGranted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageExercisePriceGranted" xlink:to="tomz_WeightedAverageExercisePriceGranted_lbl_b07e75" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceGranted_lbl_b07e75" xml:lang="en-US">Weighted average exercise price, Granted</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceExercised" xlink:label="tomz_WeightedAverageExercisePriceExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageExercisePriceExercised" xlink:to="tomz_WeightedAverageExercisePriceExercised_lbl_4e786d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceExercised_lbl_4e786d" xml:lang="en-US">Weighted average exercise price, Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceExpired" xlink:label="tomz_WeightedAverageExercisePriceExpired" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageExercisePriceExpired" xlink:to="tomz_WeightedAverageExercisePriceExpired_lbl_f594be" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceExpired_lbl_f594be" xml:lang="en-US">Weighted average exercise price, Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceOutstandingEndingBalance" xlink:label="tomz_WeightedAverageExercisePriceOutstandingEndingBalance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WeightedAverageExercisePriceOutstandingEndingBalance" xlink:to="tomz_WeightedAverageExercisePriceOutstandingEndingBalance_lbl_7eaf29" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceOutstandingEndingBalance_lbl_7eaf29" xml:lang="en-US">Weighted average exercise price outstanding, Ending balance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="us-gaap_OptionIndexedToIssuersEquityEquityAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:to="us-gaap_OptionIndexedToIssuersEquityEquityAxis_lbl_dd1017" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OptionIndexedToIssuersEquityEquityAxis_lbl_dd1017" xml:lang="en-US">Option Indexed To Issuers Equity Equity Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeOneMember" xlink:label="tomz_RangeOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeOneMember" xlink:to="tomz_RangeOneMember_lbl_5ad897" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeOneMember_lbl_5ad897" xml:lang="en-US">$0.80</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeSevenMember" xlink:label="tomz_RangeSevenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeSevenMember" xlink:to="tomz_RangeSevenMember_lbl_7fef1c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeSevenMember_lbl_7fef1c" xml:lang="en-US">$7.06</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeThreeMember" xlink:label="tomz_RangeThreeMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeThreeMember" xlink:to="tomz_RangeThreeMember_lbl_344a32" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeThreeMember_lbl_344a32" xml:lang="en-US">$0.96</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeFourMember" xlink:label="tomz_RangeFourMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeFourMember" xlink:to="tomz_RangeFourMember_lbl_7f2225" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeFourMember_lbl_7f2225" xml:lang="en-US">$1.93</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeFiveMember" xlink:label="tomz_RangeFiveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeFiveMember" xlink:to="tomz_RangeFiveMember_lbl_3c7187" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeFiveMember_lbl_3c7187" xml:lang="en-US">$2.16</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeTwoMember" xlink:label="tomz_RangeTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeTwoMember" xlink:to="tomz_RangeTwoMember_lbl_0b78fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeTwoMember_lbl_0b78fb" xml:lang="en-US">$0.88</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeEightMember" xlink:to="tomz_RangeEightMember_lbl_efbafa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_RangeEightMember_lbl_efbafa" xml:lang="en-US">$7.06</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeEightMember" xlink:label="tomz_RangeEightMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeEightMember" xlink:to="tomz_RangeEightMember_lbl_28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeEightMember_lbl_28" xml:lang="en-US">[$7.06]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeNineMember" xlink:label="tomz_RangeNineMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeNineMember" xlink:to="tomz_RangeNineMember_lbl_50f30b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeNineMember_lbl_50f30b" xml:lang="en-US">$1.12</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_b83260" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_b83260" xml:lang="en-US">Outstanding, Beginning Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers_lbl_8011b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers_lbl_8011b6" xml:lang="en-US">Outstanding, Beginning Balance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers_lbl_3" xml:lang="en-US">[Outstanding, Beginning Balance]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_facafd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_facafd" xml:lang="en-US">Average Weighted Remaining Contractual Life in Years, Outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2_lbl_701ec4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2_lbl_701ec4" xml:lang="en-US">Average Weighted Remaining Contractual Life in Years, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2_lbl_5" xml:lang="en-US">[Average Weighted Remaining Contractual Life in Years, Outstanding]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers_lbl_8f57dd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers_lbl_8f57dd" xml:lang="en-US">Number of Exercisable Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers_lbl_6" xml:lang="en-US">[Number of Exercisable Options]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_124f5c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_124f5c" xml:lang="en-US">Number of Exercisable Options</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_3f5b39" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_3f5b39" xml:lang="en-US">Weighted Average Exercise Price, Exercisable Options</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices_lbl_f6fa1f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices_lbl_f6fa1f" xml:lang="en-US">Weighted Average Exercise Price, Exercisable Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" xlink:to="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices_lbl_9" xml:lang="en-US">[Weighted Average Exercise Price, Exercisable Options]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_lbl_b81dc5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_lbl_b81dc5" xml:lang="en-US">Number of Options</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_f390d5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_f390d5" xml:lang="en-US">Outstanding, beginning of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_8a8b94" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_8a8b94" xml:lang="en-US">Granted</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_7c3b46" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_7c3b46" xml:lang="en-US">Outstanding, end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_lbl_f67f8e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_lbl_f67f8e" xml:lang="en-US">Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_lbl_8" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_def29d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_def29d" xml:lang="en-US">Weighted average exercise price, beginning of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_9" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_cfb56c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_cfb56c" xml:lang="en-US">Weighted average exercise price, Granted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_10" xml:lang="en-US">[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_5e1588" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_5e1588" xml:lang="en-US">Weighted average exercise price, Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_11" xml:lang="en-US">[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_8ac5c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_8ac5c7" xml:lang="en-US">Weighted average exercise price, Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_12" xml:lang="en-US">[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_accec7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_accec7" xml:lang="en-US">Weighted average exercise price, end of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl_2dcf52" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl_2dcf52" xml:lang="en-US">Award Type Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsOneMember" xlink:label="tomz_WarrantsOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsOneMember" xlink:to="tomz_WarrantsOneMember_lbl_48dc31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsOneMember_lbl_48dc31" xml:lang="en-US">$ 0.64</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTwoMember" xlink:label="tomz_WarrantsTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsTwoMember" xlink:to="tomz_WarrantsTwoMember_lbl_5a0a74" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTwoMember_lbl_5a0a74" xml:lang="en-US">$ 0.80</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsThreeMember" xlink:label="tomz_WarrantsThreeMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsThreeMember" xlink:to="tomz_WarrantsThreeMember_lbl_67c908" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsThreeMember_lbl_67c908" xml:lang="en-US">$ 0.96</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsFourMember" xlink:label="tomz_WarrantsFourMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsFourMember" xlink:to="tomz_WarrantsFourMember_lbl_1085ed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsFourMember_lbl_1085ed" xml:lang="en-US">$ 1.12</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsFiveMember" xlink:label="tomz_WarrantsFiveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsFiveMember" xlink:to="tomz_WarrantsFiveMember_lbl_69a522" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsFiveMember_lbl_69a522" xml:lang="en-US">$ 1.20</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsSevenMember" xlink:label="tomz_WarrantsSevenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsSevenMember" xlink:to="tomz_WarrantsSevenMember_lbl_d62974" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsSevenMember_lbl_d62974" xml:lang="en-US">$ 1.68</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsEightMember" xlink:label="tomz_WarrantsEightMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsEightMember" xlink:to="tomz_WarrantsEightMember_lbl_adeabd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsEightMember_lbl_adeabd" xml:lang="en-US">$ 2.18</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTenMember" xlink:label="tomz_WarrantsTenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsTenMember" xlink:to="tomz_WarrantsTenMember_lbl_71bb2a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTenMember_lbl_71bb2a" xml:lang="en-US">$ 4.00</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsElevenMember" xlink:label="tomz_WarrantsElevenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsElevenMember" xlink:to="tomz_WarrantsElevenMember_lbl_4f47f1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsElevenMember_lbl_4f47f1" xml:lang="en-US">$ 6.95</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTwelveMember" xlink:label="tomz_WarrantsTwelveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsTwelveMember" xlink:to="tomz_WarrantsTwelveMember_lbl_00f8db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTwelveMember_lbl_00f8db" xml:lang="en-US">$ 8.40</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_ea1862" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_ea1862" xml:lang="en-US">Average Weighted Remaining Contractual Life in Years</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_e888bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_e888bc" xml:lang="en-US">Outstanding, Beginning Balance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_3" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_6ba355" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_6ba355" xml:lang="en-US">Exercisable Warrants</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_c5d25e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_c5d25e" xml:lang="en-US">Weighted Average Exercise Price, Exercisable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis_lbl_7a059e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualAxis_lbl_7a059e" xml:lang="en-US">Title of Individual [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardDateAxis" xlink:label="us-gaap_AwardDateAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardDateAxis" xlink:to="us-gaap_AwardDateAxis_lbl_dfb75d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardDateAxis_lbl_dfb75d" xml:lang="en-US">Award Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl_dc934e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeAxis_lbl_dc934e" xml:lang="en-US">Range [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PrivatePlacementsMember" xlink:label="tomz_PrivatePlacementsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PrivatePlacementsMember" xlink:to="tomz_PrivatePlacementsMember_lbl_c6d4e5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PrivatePlacementsMember_lbl_c6d4e5" xml:lang="en-US">Private Placement [Members]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PlacementAgentMember" xlink:label="tomz_PlacementAgentMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PlacementAgentMember" xlink:to="tomz_PlacementAgentMember_lbl_ee92c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PlacementAgentMember_lbl_ee92c4" xml:lang="en-US">Placement Agent [Members]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwentyTwoMember" xlink:label="tomz_JanuaryTwentyTwentyTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_JanuaryTwentyTwentyTwoMember" xlink:to="tomz_JanuaryTwentyTwentyTwoMember_lbl_6e6874" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JanuaryTwentyTwentyTwoMember_lbl_6e6874" xml:lang="en-US">January 2022 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwentyOneMember" xlink:label="tomz_JanuaryTwentyTwentyOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_JanuaryTwentyTwentyOneMember" xlink:to="tomz_JanuaryTwentyTwentyOneMember_lbl_008c9c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JanuaryTwentyTwentyOneMember_lbl_008c9c" xml:lang="en-US">January 2021 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ChiefOperatingOfficersMember" xlink:label="tomz_ChiefOperatingOfficersMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ChiefOperatingOfficersMember" xlink:to="tomz_ChiefOperatingOfficersMember_lbl_6676aa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ChiefOperatingOfficersMember_lbl_6676aa" xml:lang="en-US">CEO [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockOptionsMember" xlink:to="tomz_StockOptionsMember_lbl_0a709d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_StockOptionsMember_lbl_0a709d" xml:lang="en-US">Stock Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwoMember" xlink:label="tomz_JanuaryTwentyTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_JanuaryTwentyTwoMember" xlink:to="tomz_JanuaryTwentyTwoMember_lbl_f7a590" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JanuaryTwentyTwoMember_lbl_f7a590" xml:lang="en-US">January Twenty Two [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockOptionMember" xlink:label="us-gaap_StockOptionMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockOptionMember" xlink:to="us-gaap_StockOptionMember_lbl_b9badf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockOptionMember_lbl_b9badf" xml:lang="en-US">Stock Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl_6a687c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MinimumMember_lbl_6a687c" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl_f8878d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MaximumMember_lbl_f8878d" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockShareSold" xlink:label="tomz_CommonStockShareSold" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockShareSold" xlink:to="tomz_CommonStockShareSold_lbl_aa9f5c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockShareSold_lbl_aa9f5c" xml:lang="en-US">Common stock share sold</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IssuedWarrantsInConcurrentPrivatePlacement" xlink:label="tomz_IssuedWarrantsInConcurrentPrivatePlacement" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IssuedWarrantsInConcurrentPrivatePlacement" xlink:to="tomz_IssuedWarrantsInConcurrentPrivatePlacement_lbl_a727b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IssuedWarrantsInConcurrentPrivatePlacement_lbl_a727b1" xml:lang="en-US">Issued warrants in concurrent private placement</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IssuedWarrantsInConcurrentPlacementAgent" xlink:label="tomz_IssuedWarrantsInConcurrentPlacementAgent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IssuedWarrantsInConcurrentPlacementAgent" xlink:to="tomz_IssuedWarrantsInConcurrentPlacementAgent_lbl_906d1b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IssuedWarrantsInConcurrentPlacementAgent_lbl_906d1b" xml:lang="en-US">Issued warrants in concurrent placement agent</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermsOfOutstandingWarrantsToPurchase" xlink:label="tomz_TermsOfOutstandingWarrantsToPurchase" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TermsOfOutstandingWarrantsToPurchase" xlink:to="tomz_TermsOfOutstandingWarrantsToPurchase_lbl_b7fc16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TermsOfOutstandingWarrantsToPurchase_lbl_b7fc16" xml:lang="en-US">Terms of outstanding warrants to purchase</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GrantFairValueOfPerShare" xlink:label="tomz_GrantFairValueOfPerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GrantFairValueOfPerShare" xlink:to="tomz_GrantFairValueOfPerShare_lbl_304b5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GrantFairValueOfPerShare_lbl_304b5d" xml:lang="en-US">Grant fair value of per share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfWarrants" xlink:to="us-gaap_ProceedsFromIssuanceOfWarrants_lbl_748395" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ProceedsFromIssuanceOfWarrants_lbl_748395" xml:lang="en-US">Proceeds from issuance of warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExercisePriceOfWarrant" xlink:label="tomz_ExercisePriceOfWarrant" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExercisePriceOfWarrant" xlink:to="tomz_ExercisePriceOfWarrant_lbl_a1da81" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExercisePriceOfWarrant_lbl_a1da81" xml:lang="en-US">Exercise price of warrant</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantAmendmentDescription" xlink:label="tomz_WarrantAmendmentDescription" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantAmendmentDescription" xlink:to="tomz_WarrantAmendmentDescription_lbl_1abd73" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantAmendmentDescription_lbl_1abd73" xml:lang="en-US">Warrant amendment, description</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AggregateCashConsideration" xlink:label="tomz_AggregateCashConsideration" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AggregateCashConsideration" xlink:to="tomz_AggregateCashConsideration_lbl_bc30fd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AggregateCashConsideration_lbl_bc30fd" xml:lang="en-US">Aggregate cash consideration</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:to="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock_lbl_53e970" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock_lbl_53e970" xml:lang="en-US">Warrants issued upon purchase share of common stock</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl_a285d9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_a285d9" xml:lang="en-US">Preferred stock shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl_d6035f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_d6035f" xml:lang="en-US">Cumulative Convertible Preferred Stock; Shares Issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl_e1bf2b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl_e1bf2b" xml:lang="en-US">Cumulative Convertible Preferred Stock; Shares Outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_278c82" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_278c82" xml:lang="en-US">Cumulative Convertible Preferred Stock; Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstanding" xlink:label="us-gaap_WarrantsAndRightsOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WarrantsAndRightsOutstanding" xlink:to="us-gaap_WarrantsAndRightsOutstanding_lbl_e4221d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WarrantsAndRightsOutstanding_lbl_e4221d" xml:lang="en-US">Warrant issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_7c23f2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_7c23f2" xml:lang="en-US">Common stock share issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl_2220a6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockValue_lbl_2220a6" xml:lang="en-US">Common stock value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl_08bf00" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl_08bf00" xml:lang="en-US">Volatility rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl_24db17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl_24db17" xml:lang="en-US">Expected dividend yield</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl_e86f32" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl_e86f32" xml:lang="en-US">Risk free interest rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl_0cc6c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl_0cc6c4" xml:lang="en-US">Aggregate shares purchase of stock option</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_FairValueOfStockOption" xlink:label="tomz_FairValueOfStockOption" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_FairValueOfStockOption" xlink:to="tomz_FairValueOfStockOption_lbl_50196f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_FairValueOfStockOption_lbl_50196f" xml:lang="en-US">Fair value of stock option</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl_e3da23" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl_e3da23" xml:lang="en-US">Contractual term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl_d60944" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl_d60944" xml:lang="en-US">Share based compensation expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl_32cf5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl_32cf5d" xml:lang="en-US">Expected life term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_4bd795" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_4bd795" xml:lang="en-US">Exercise price</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInSecondYear" xlink:to="us-gaap_ContractualObligationDueInSecondYear_lbl_5cb652" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInSecondYear_lbl_5cb652" xml:lang="en-US">December 31, 2023</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInSecondYear" xlink:label="us-gaap_ContractualObligationDueInSecondYear" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInSecondYear" xlink:to="us-gaap_ContractualObligationDueInSecondYear_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInSecondYear_lbl_2" xml:lang="en-US">[Contractual Obligation, to be Paid, Year Two]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInThirdYear" xlink:to="us-gaap_ContractualObligationDueInThirdYear_lbl_e3db56" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInThirdYear_lbl_e3db56" xml:lang="en-US">December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInThirdYear" xlink:label="us-gaap_ContractualObligationDueInThirdYear" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInThirdYear" xlink:to="us-gaap_ContractualObligationDueInThirdYear_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInThirdYear_lbl_3" xml:lang="en-US">[Contractual Obligation, to be Paid, Year Three]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInFourthYear" xlink:to="us-gaap_ContractualObligationDueInFourthYear_lbl_2803e1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInFourthYear_lbl_2803e1" xml:lang="en-US">December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInFourthYear" xlink:label="us-gaap_ContractualObligationDueInFourthYear" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInFourthYear" xlink:to="us-gaap_ContractualObligationDueInFourthYear_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInFourthYear_lbl_4" xml:lang="en-US">[Contractual Obligation, to be Paid, Year Four]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligation" xlink:to="us-gaap_ContractualObligation_lbl_54ba53" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_ContractualObligation_lbl_54ba53" xml:lang="en-US">Total Minimum Payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligation" xlink:label="us-gaap_ContractualObligation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligation" xlink:to="us-gaap_ContractualObligation_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligation_lbl_5" xml:lang="en-US">[Contractual Obligation]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExecutiveAgreementsWithHaldenSShaneMember" xlink:label="tomz_ExecutiveAgreementsWithHaldenSShaneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExecutiveAgreementsWithHaldenSShaneMember" xlink:to="tomz_ExecutiveAgreementsWithHaldenSShaneMember_lbl_5378e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExecutiveAgreementsWithHaldenSShaneMember_lbl_5378e4" xml:lang="en-US">Executive Agreements (Halden S. Shane)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="tomz_ExecutiveAgreementsWithElissaJShaneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:to="tomz_ExecutiveAgreementsWithElissaJShaneMember_lbl_be46f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExecutiveAgreementsWithElissaJShaneMember_lbl_be46f7" xml:lang="en-US">Executive Agreements (Elissa J. Shane)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_BoardOfMembersMember" xlink:label="tomz_BoardOfMembersMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_BoardOfMembersMember" xlink:to="tomz_BoardOfMembersMember_lbl_434af9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_BoardOfMembersMember_lbl_434af9" xml:lang="en-US">Board of Members</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommitteeChairpersonMember" xlink:label="tomz_CommitteeChairpersonMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommitteeChairpersonMember" xlink:to="tomz_CommitteeChairpersonMember_lbl_b841e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommitteeChairpersonMember_lbl_b841e4" xml:lang="en-US">Committee Chairperson</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:to="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_lbl_36b324" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_lbl_36b324" xml:lang="en-US">Options full consideration of the amount entitled</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermOfAgreement" xlink:label="tomz_TermOfAgreement" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TermOfAgreement" xlink:to="tomz_TermOfAgreement_lbl_413957" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TermOfAgreement_lbl_413957" xml:lang="en-US">Term of agreement</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalariesAndWages" xlink:label="us-gaap_SalariesAndWages" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalariesAndWages" xlink:to="us-gaap_SalariesAndWages_lbl_2f340f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SalariesAndWages_lbl_2f340f" xml:lang="en-US">Base annual salary</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightOutstanding" xlink:to="us-gaap_ClassOfWarrantOrRightOutstanding_lbl_0e84a3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ClassOfWarrantOrRightOutstanding_lbl_0e84a3" xml:lang="en-US">Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightOutstanding" xlink:label="us-gaap_ClassOfWarrantOrRightOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightOutstanding" xlink:to="us-gaap_ClassOfWarrantOrRightOutstanding_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightOutstanding_lbl_5" xml:lang="en-US">[Class of Warrant or Right, Outstanding]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" xlink:to="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_lbl_9f6f4d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_lbl_9f6f4d" xml:lang="en-US">Warrant to purchase shares of common stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentForManagementFee" xlink:label="us-gaap_PaymentForManagementFee" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForManagementFee" xlink:to="us-gaap_PaymentForManagementFee_lbl_700f7c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForManagementFee_lbl_700f7c" xml:lang="en-US">Increased annual fee</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_d4e018" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_d4e018" xml:lang="en-US">Issued shares of common stock during period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:to="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl_218962" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl_218962" xml:lang="en-US">Issued shares of common stock during period, value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent_lbl_c4f0bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent_lbl_c4f0bc" xml:lang="en-US">Commissions</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:label="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:to="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent_lbl_8fa28e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent_lbl_8fa28e" xml:lang="en-US">Payroll And Related Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DirectorFeesCurrentAndNoncurrent" xlink:label="tomz_DirectorFeesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DirectorFeesCurrentAndNoncurrent" xlink:to="tomz_DirectorFeesCurrentAndNoncurrent_lbl_957ed6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DirectorFeesCurrentAndNoncurrent_lbl_957ed6" xml:lang="en-US">Director Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SalesTaxPayable" xlink:label="tomz_SalesTaxPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SalesTaxPayable" xlink:to="tomz_SalesTaxPayable_lbl_d28239" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SalesTaxPayable_lbl_d28239" xml:lang="en-US">Sales Tax Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="us-gaap_ExtendedProductWarrantyAccrualCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:to="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl_092a61" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl_092a61" xml:lang="en-US">Accrued Warranty (note 14)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_lbl_6afc3f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_lbl_6afc3f" xml:lang="en-US">Other Accrued Expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_c53d3d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_c53d3d" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl_b807cc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_b807cc" xml:lang="en-US">Beginning Accrued Warranty Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="us-gaap_ExtendedProductWarrantyAccrual" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_2" xml:lang="en-US">[Extended Product Warranty Accrual]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:label="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:to="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease_lbl_32acbe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease_lbl_32acbe" xml:lang="en-US">Provision For Warranty Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SettlementOfWarrantyClaims" xlink:label="tomz_SettlementOfWarrantyClaims" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SettlementOfWarrantyClaims" xlink:to="tomz_SettlementOfWarrantyClaims_lbl_748d89" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SettlementOfWarrantyClaims_lbl_748d89" xml:lang="en-US">Settlement Of Warranty Claims</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl_b233ee" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_b233ee" xml:lang="en-US">Ending Accrued Warranty Cost</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl_bec0e9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl_bec0e9" xml:lang="en-US">Current:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_lbl_c55f66" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl_c55f66" xml:lang="en-US">Federal</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl_f4acb0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl_f4acb0" xml:lang="en-US">State</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit_lbl_761c5b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit_lbl_761c5b" xml:lang="en-US">Foreign</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl_b34a0a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl_b34a0a" xml:lang="en-US">Current Income Tax Expense Benefit</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl_6" xml:lang="en-US">[Current Income Tax Expense (Benefit)]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl_05552a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl_05552a" xml:lang="en-US">Deferred:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl_31eaf0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl_31eaf0" xml:lang="en-US">Federal</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl_8" xml:lang="en-US">[Deferred Federal Income Tax Expense (Benefit)]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_64da24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_64da24" xml:lang="en-US">State</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_9" xml:lang="en-US">[Deferred State and Local Income Tax Expense (Benefit)]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl_349512" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl_349512" xml:lang="en-US">Foreign</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl_10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl_10" xml:lang="en-US">[Deferred Foreign Income Tax Expense (Benefit)]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl_3f4dc5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl_3f4dc5" xml:lang="en-US">DeferredIncomeTaxExpenseBenefit</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ProvisionForIncomeTaxes" xlink:label="tomz_ProvisionForIncomeTaxes" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProvisionForIncomeTaxes" xlink:to="tomz_ProvisionForIncomeTaxes_lbl_0c351c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProvisionForIncomeTaxes_lbl_0c351c" xml:lang="en-US">Provision for Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_lbl_0d0fb3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_lbl_0d0fb3" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl_6d67b4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl_6d67b4" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_lbl_7954e0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_lbl_7954e0" xml:lang="en-US">Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncomeLossBeforeIncomeTax" xlink:label="tomz_IncomeLossBeforeIncomeTax" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IncomeLossBeforeIncomeTax" xlink:to="tomz_IncomeLossBeforeIncomeTax_lbl_8b702e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IncomeLossBeforeIncomeTax_lbl_8b702e" xml:lang="en-US">Income (Loss) before income tax</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl_5d346b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl_5d346b" xml:lang="en-US">US statutory corporate income tax rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl_e88a42" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl_e88a42" xml:lang="en-US">Income tax expense computed at US statutory corporate income tax rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_lbl_49d657" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_lbl_49d657" xml:lang="en-US">Reconciling items:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl_30c61e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl_30c61e" xml:lang="en-US">Change in valuation allowance on deferred tax assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl_524d5e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl_524d5e" xml:lang="en-US">Provision to prior year tax return</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl_e22348" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl_e22348" xml:lang="en-US">Incentive stock options and warrants</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl_7427d1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl_7427d1" xml:lang="en-US">Gain Upon Debt Extinguishment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl_9" xml:lang="en-US">[Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_lbl_f55985" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_lbl_f55985" xml:lang="en-US">Other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl_de11d1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl_de11d1" xml:lang="en-US">Income tax expense (benefit)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_lbl_dfc9d8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_lbl_dfc9d8" xml:lang="en-US">Deferred tax assets:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InventoryReserve" xlink:to="tomz_InventoryReserve_lbl_702c18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_InventoryReserve_lbl_702c18" xml:lang="en-US">Inventory Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_InventoryReserve" xlink:label="tomz_InventoryReserve" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InventoryReserve" xlink:to="tomz_InventoryReserve_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InventoryReserve_lbl_3" xml:lang="en-US">[Inventory Reserve]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl_9cfbff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl_9cfbff" xml:lang="en-US">Reserve for Bad Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl_4" xml:lang="en-US">[Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Accounts Receivable, Allowance for Credit Loss]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetsAccruedVacation" xlink:label="tomz_DeferredTaxAssetsAccruedVacation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DeferredTaxAssetsAccruedVacation" xlink:to="tomz_DeferredTaxAssetsAccruedVacation_lbl_94d41d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxAssetsAccruedVacation_lbl_94d41d" xml:lang="en-US">Accrued Vacation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:to="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_lbl_9c34c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_lbl_9c34c6" xml:lang="en-US">Warranty Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:label="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:to="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_lbl_6" xml:lang="en-US">[Warranty Reserve]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_lbl_e22122" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_lbl_e22122" xml:lang="en-US">Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts" xlink:label="us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts" xlink:to="us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts_lbl_25c801" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts_lbl_25c801" xml:lang="en-US">Capitalized Research and Development</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" xlink:label="tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" xlink:to="tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities_lbl_e7ca69" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities_lbl_e7ca69" xml:lang="en-US">Operating Lease Right-of-use Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl_a11631" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl_a11631" xml:lang="en-US">Net Operating Losses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_a97009" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_a97009" xml:lang="en-US">Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_11" xml:lang="en-US">[Deferred Tax Assets, Valuation Allowance]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet_lbl_9aee4a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl_9aee4a" xml:lang="en-US">Deferred Tax Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl_12" xml:lang="en-US">[Deferred Tax Assets, Net of Valuation Allowance]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_lbl_1d33a2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_lbl_1d33a2" xml:lang="en-US">Deferred tax liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" xlink:to="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets_lbl_96c3e0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets_lbl_96c3e0" xml:lang="en-US">Operating Lease Right-of-use Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" xlink:label="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" xlink:to="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets_lbl_14" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets_lbl_14" xml:lang="en-US">[Operating Lease Right-of-use Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl_2e5bdb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl_2e5bdb" xml:lang="en-US">Property Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl_15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl_15" xml:lang="en-US">[Deferred Tax Liabilities, Property, Plant and Equipment]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities_lbl_289e9e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilities_lbl_289e9e" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="us-gaap_DeferredTaxLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities_lbl_16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilities_lbl_16" xml:lang="en-US">[Deferred Tax Liabilities, Net]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl_73da2d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl_73da2d" xml:lang="en-US">Net Deferred Tax Assets and Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl_17" xml:lang="en-US">[Deferred Tax Assets, Net]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwards" xlink:to="us-gaap_OperatingLossCarryforwards_lbl_3d99d4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwards_lbl_3d99d4" xml:lang="en-US">Net Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StateNetOperatingLossCarryforwards" xlink:label="tomz_StateNetOperatingLossCarryforwards" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StateNetOperatingLossCarryforwards" xlink:to="tomz_StateNetOperatingLossCarryforwards_lbl_731412" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StateNetOperatingLossCarryforwards_lbl_731412" xml:lang="en-US">State Net Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_NetDeferredTaxAssetsIncreasedValuationAllowance" xlink:label="tomz_NetDeferredTaxAssetsIncreasedValuationAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_NetDeferredTaxAssetsIncreasedValuationAllowance" xlink:to="tomz_NetDeferredTaxAssetsIncreasedValuationAllowance_lbl_7c2d95" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetDeferredTaxAssetsIncreasedValuationAllowance_lbl_7c2d95" xml:lang="en-US">Net deferred tax assets increased valuation allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_NetDeferredTaxAssetsValuationAllowance" xlink:label="tomz_NetDeferredTaxAssetsValuationAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_NetDeferredTaxAssetsValuationAllowance" xlink:to="tomz_NetDeferredTaxAssetsValuationAllowance_lbl_587d09" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetDeferredTaxAssetsValuationAllowance_lbl_587d09" xml:lang="en-US">Net deferred tax assets valuation allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OneCustomerMember" xlink:label="tomz_OneCustomerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OneCustomerMember" xlink:to="tomz_OneCustomerMember_lbl_e071ef" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OneCustomerMember_lbl_e071ef" xml:lang="en-US">One Customer</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TwoCustomerMember" xlink:label="tomz_TwoCustomerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TwoCustomerMember" xlink:to="tomz_TwoCustomerMember_lbl_088de6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoCustomerMember_lbl_088de6" xml:lang="en-US">Two Customer</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ThreeCustomerMember" xlink:label="tomz_ThreeCustomerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ThreeCustomerMember" xlink:to="tomz_ThreeCustomerMember_lbl_3feeb2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ThreeCustomerMember_lbl_3feeb2" xml:lang="en-US">Three Customer</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl_13df2d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl_13df2d" xml:lang="en-US">Concentration Risk Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl_d282f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl_d282f4" xml:lang="en-US">Subsequent Event Type Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="srt_ChiefExecutiveOfficerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ChiefExecutiveOfficerMember" xlink:to="srt_ChiefExecutiveOfficerMember_lbl_c72fc2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefExecutiveOfficerMember_lbl_c72fc2" xml:lang="en-US">Chief Executive Officer [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl_3e2691" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventMember_lbl_3e2691" xml:lang="en-US">Subsequent Event</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefOperatingOfficerMember" xlink:label="srt_ChiefOperatingOfficerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ChiefOperatingOfficerMember" xlink:to="srt_ChiefOperatingOfficerMember_lbl_7a1f37" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefOperatingOfficerMember_lbl_7a1f37" xml:lang="en-US">Chief Operating Officer [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefFinancialOfficerMember" xlink:label="srt_ChiefFinancialOfficerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ChiefFinancialOfficerMember" xlink:to="srt_ChiefFinancialOfficerMember_lbl_2f32f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefFinancialOfficerMember_lbl_2f32f4" xml:lang="en-US">Chief Financial Officer</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_BoardOfDirectorsChairmanMember" xlink:label="srt_BoardOfDirectorsChairmanMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_BoardOfDirectorsChairmanMember" xlink:to="srt_BoardOfDirectorsChairmanMember_lbl_ac29da" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_BoardOfDirectorsChairmanMember_lbl_ac29da" xml:lang="en-US">Board of Directors Chairman</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:to="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_lbl_e33dcb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_lbl_e33dcb" xml:lang="en-US">Exercise price</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:label="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:to="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_lbl_2" xml:lang="en-US">[Class of Warrant or Right, Exercise Price of Warrants or Rights]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares_lbl_5d159e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl_5d159e" xml:lang="en-US">Option to purchase</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionValued" xlink:label="tomz_StockOptionValued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockOptionValued" xlink:to="tomz_StockOptionValued_lbl_99648b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionValued_lbl_99648b" xml:lang="en-US">Stock option valued</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionTerm" xlink:label="tomz_StockOptionTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockOptionTerm" xlink:to="tomz_StockOptionTerm_lbl_d1eda2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionTerm_lbl_d1eda2" xml:lang="en-US">Stock option term</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Volatility" xlink:label="tomz_Volatility" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Volatility" xlink:to="tomz_Volatility_lbl_e02349" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Volatility_lbl_e02349" xml:lang="en-US">Volatility</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExpectedDividendYield" xlink:to="tomz_ExpectedDividendYield_lbl_a9aeed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ExpectedDividendYield_lbl_a9aeed" xml:lang="en-US">Expected dividend yield</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExpectedDividendYield" xlink:label="tomz_ExpectedDividendYield" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExpectedDividendYield" xlink:to="tomz_ExpectedDividendYield_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExpectedDividendYield_lbl_7" xml:lang="en-US">[Expected dividend yield]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RiskFreeInterestRate" xlink:to="tomz_RiskFreeInterestRate_lbl_9ef783" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_RiskFreeInterestRate_lbl_9ef783" xml:lang="en-US">Risk free interest rate</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RiskFreeInterestRate" xlink:label="tomz_RiskFreeInterestRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RiskFreeInterestRate" xlink:to="tomz_RiskFreeInterestRate_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RiskFreeInterestRate_lbl_8" xml:lang="en-US">[Risk free interest rate]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GrantDateFairValuePerShareOfCommonStock" xlink:label="tomz_GrantDateFairValuePerShareOfCommonStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GrantDateFairValuePerShareOfCommonStock" xlink:to="tomz_GrantDateFairValuePerShareOfCommonStock_lbl_8e7a9f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GrantDateFairValuePerShareOfCommonStock_lbl_8e7a9f" xml:lang="en-US">Grant date fair value per share of common stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConversionOfStockSharesIssued1" xlink:label="us-gaap_ConversionOfStockSharesIssued1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConversionOfStockSharesIssued1" xlink:to="us-gaap_ConversionOfStockSharesIssued1_lbl_6bdcda" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConversionOfStockSharesIssued1_lbl_6bdcda" xml:lang="en-US">Common stock issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConversionOfStockAmountIssued1" xlink:label="us-gaap_ConversionOfStockAmountIssued1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConversionOfStockAmountIssued1" xlink:to="us-gaap_ConversionOfStockAmountIssued1_lbl_3507d7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConversionOfStockAmountIssued1_lbl_3507d7" xml:lang="en-US">Common stock issued amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl_232cbc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl_232cbc" xml:lang="en-US">Contractual term</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_CommonStockShareSold" xlink:to="tomz_CommonStockShareSold_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_CommonStockShareSold_d">Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_ConsultingFees" xlink:to="tomz_ConsultingFees_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_ConsultingFees_d">Consulting Expenses incurred during the period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_PurchaseOfPropertyAndEquipment" xlink:to="tomz_PurchaseOfPropertyAndEquipment_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_PurchaseOfPropertyAndEquipment_d">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 a</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_ContractsAndAgreementsTextBlock" xlink:to="tomz_ContractsAndAgreementsTextBlock_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_ContractsAndAgreementsTextBlock_d">Contracts and agreements text block.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_AccountsPayablePolicyTextBlock" xlink:to="tomz_AccountsPayablePolicyTextBlock_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_AccountsPayablePolicyTextBlock_d">Custom Element.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" xlink:to="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets_d">Long lived assets including acquired intangible assets.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_WarrantsOutstandingAndExercisableByPriceRange" xlink:to="tomz_WarrantsOutstandingAndExercisableByPriceRange_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_WarrantsOutstandingAndExercisableByPriceRange_d">Custom Element.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_ApproximateMinimumContractPaymentsTableTextBlock" xlink:to="tomz_ApproximateMinimumContractPaymentsTableTextBlock_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_ApproximateMinimumContractPaymentsTableTextBlock_d">Tabular disclosure of contractual obligation by timing of payment due. Includes, but is not limited to, long-term debt obligation, lease obligation, and purchase obligation.</link:label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>8
<FILENAME>tomz-20221231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 03/16/2023-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2023 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20221231.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20221231.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20221231.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20221231.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20221231.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20221231.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20221231.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20221231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20221231.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCosts" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20221231.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20221231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20221231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20221231.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20221231.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20221231.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20221231.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20221231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20221231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20221231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20221231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityTables" xlink:href="tomz-20221231.xsd#ShareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsTables" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20221231.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesTables" xlink:href="tomz-20221231.xsd#IncomeTaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20221231.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20221231.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20221231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20221231.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20221231.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20221231.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20221231.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20221231.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20221231.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20221231.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails1" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails2" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails3" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20221231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20221231.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20221231.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Document and Entity Information" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:title="000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashEquivalentsAtCarryingValue" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapCashEquivalentsAtCarryingValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="loc_us-gaapOtherReceivablesNetCurrent" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapOtherReceivablesNetCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapInventoryNet" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapDepositsAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapPrepaidExpenseCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:label="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaapOtherAssetsNoncurrent" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapOtherAssetsNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapAssetsCurrent" xlink:type="arc" weight="1" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapOtherAssets" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccountsPayableCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerDepositsCurrent" xlink:label="loc_us-gaapCustomerDepositsCurrent" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapCustomerDepositsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesCurrent" xlink:type="arc" weight="1" />
    <link:calculationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
    <link:calculationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapPreferredStockValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:calculationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapCommonStockValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
    <link:calculationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
    <link:calculationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapAdditionalPaidInCapital" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
    <link:calculationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapLiabilities" xlink:type="arc" weight="1" />
    <link:calculationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:title="000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:title="000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapRevenues" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapCostOfRevenue" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProfessionalFees" xlink:label="loc_us-gaapProfessionalFees" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapProfessionalFees" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapDepreciationAndAmortization" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingExpense" xlink:label="loc_us-gaapSellingExpense" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapSellingExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapResearchAndDevelopmentExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ConsultingFees" xlink:label="loc_tomzConsultingFees" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_tomzConsultingFees" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherGeneralAndAdministrativeExpense" xlink:label="loc_us-gaapOtherGeneralAndAdministrativeExpense" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapOtherGeneralAndAdministrativeExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapGrossProfit" xlink:type="arc" weight="1" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapOperatingExpenses" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="loc_us-gaapGainsLossesOnExtinguishmentOfDebt" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapGainsLossesOnExtinguishmentOfDebt" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapInterestIncomeOther" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapInterestExpense" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapOperatingIncomeLoss" xlink:type="arc" weight="1" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapNonoperatingIncomeExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" weight="-1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:title="000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:title="000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayable" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayable" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInCustomerDeposits" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInCustomerDeposits" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncreaseDecreaseInLeaseLiabilities" xlink:label="loc_tomzIncreaseDecreaseInLeaseLiabilities" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_tomzIncreaseDecreaseInLeaseLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CapitalizedPatentAndTrademarkCosts" xlink:label="loc_tomzCapitalizedPatentAndTrademarkCosts" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_tomzCapitalizedPatentAndTrademarkCosts" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PurchaseOfPropertyAndEquipment" xlink:label="loc_tomzPurchaseOfPropertyAndEquipment" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_tomzPurchaseOfPropertyAndEquipment" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromIssuanceOfWarrants" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:type="arc" weight="1" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:type="arc" weight="1" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/DescriptionOfBusiness" xlink:title="000007 - Disclosure - DESCRIPTION OF BUSINESS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/INVENTORIES" xlink:title="000009 - Disclosure - INVENTORIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDeposits" xlink:title="000010 - Disclosure - VENDOR DEPOSITS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipment" xlink:title="000011 - Disclosure - PROPERTY AND EQUIPMENT" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssets" xlink:title="000012 - Disclosure - INTANGIBLE ASSETS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LEASES" xlink:title="000013 - Disclosure - LEASES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:title="000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContract" xlink:title="000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquity" xlink:title="000016 - Disclosure - SHAREHOLDERS EQUITY" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingencies" xlink:title="000017 - Disclosure - COMMITMENTS AND CONTINGENCIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreements" xlink:title="000018 - Disclosure - CONTRACTS AND AGREEMENTS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:title="000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarranty" xlink:title="000020 - Disclosure - ACCRUED WARRANTY" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="000021 - Disclosure - INCOME TAXES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="000022 - Disclosure - CUSTOMER CONCENTRATION" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="000023 - Disclosure - SUBSEQUENT EVENTS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="000024 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="000026 - Disclosure - INVENTORIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="000027 - Disclosure - PROPERTY AND EQUIPMENT (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="000028 - Disclosure - INTANGIBLE ASSETS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="000029 - Disclosure - LEASES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:title="000030 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityTables" xlink:title="000031 - Disclosure - SHAREHOLDERS EQUITY (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsTables" xlink:title="000032 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="000033 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="000034 - Disclosure - ACCRUED WARRANTY (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesTables" xlink:title="000035 - Disclosure - INCOME TAXES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="000036 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="000040 - Disclosure - INVENTORIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="000041 - Disclosure - VENDOR DEPOSITS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="000042 - Disclosure - PROPERTY AND EQUIPMENT (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="000043 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="000044 - Disclosure - INTANGIBLE ASSETS (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="000045 - Disclosure - INTANGIBLE ASSETS (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="000046 - Disclosure - INTANGIBLE ASSETS (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="000047 - Disclosure - INTANGIBLE ASSETS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="000048 - Disclosure - LEASES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="000049 - Disclosure - LEASES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="000050 - Disclosure - LEASES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="000051 - Disclosure - LEASES (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="000052 - Disclosure - LEASES (Details 4)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="000053 - Disclosure - LEASES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:title="000054 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAccumulatedAmortization" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNet" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAccumulatedAmortization" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareGross" xlink:label="loc_us-gaapCapitalizedComputerSoftwareGross" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNet" xlink:to="loc_us-gaapCapitalizedComputerSoftwareGross" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:title="000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="000056 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="000057 - Disclosure - SHAREHOLDERS EQUITY (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="000058 - Disclosure - SHAREHOLDERS EQUITY (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="000059 - Disclosure - SHAREHOLDERS EQUITY (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="000060 - Disclosure - SHAREHOLDERS EQUITY (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="000061 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:title="000062 - Disclosure - CONTRACTS AND AGREEMENTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligation" xlink:label="loc_us-gaapContractualObligation" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInFourthYear" xlink:label="loc_us-gaapContractualObligationDueInFourthYear" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapContractualObligation" xlink:to="loc_us-gaapContractualObligationDueInFourthYear" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInThirdYear" xlink:label="loc_us-gaapContractualObligationDueInThirdYear" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapContractualObligation" xlink:to="loc_us-gaapContractualObligationDueInThirdYear" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInSecondYear" xlink:label="loc_us-gaapContractualObligationDueInSecondYear" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapContractualObligation" xlink:to="loc_us-gaapContractualObligationDueInSecondYear" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="000063 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="000064 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="000065 - Disclosure - ACCRUED WARRANTY (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails" xlink:title="000066 - Disclosure - INCOME TAXES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails1" xlink:title="000067 - Disclosure - INCOME TAXES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails2" xlink:title="000068 - Disclosure - INCOME TAXES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails3" xlink:title="000069 - Disclosure - INCOME TAXES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="loc_us-gaapDeferredTaxAssetsNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaapDeferredTaxAssetsValuationAllowance" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_us-gaapDeferredTaxAssetsValuationAllowance" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="loc_us-gaapDeferredTaxAssetsOperatingLossCarryforwards" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_us-gaapDeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" xlink:label="loc_tomzDeferredTaxAssetOperatingLeaseRightofuseLiabilities" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_tomzDeferredTaxAssetOperatingLeaseRightofuseLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="loc_us-gaapDeferredTaxAssetsGoodwillAndIntangibleAssets" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_us-gaapDeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:label="loc_tomzDeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_tomzDeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetsAccruedVacation" xlink:label="loc_tomzDeferredTaxAssetsAccruedVacation" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_tomzDeferredTaxAssetsAccruedVacation" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsNet" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="loc_us-gaapDeferredTaxAssetsLiabilitiesNet" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsLiabilitiesNet" xlink:to="loc_us-gaapDeferredTaxAssetsNet" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="loc_us-gaapDeferredTaxLiabilities" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxAssetsLiabilitiesNet" xlink:to="loc_us-gaapDeferredTaxLiabilities" xlink:type="arc" weight="-1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="000070 - Disclosure - INCOME TAXES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="000071 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="000072 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>9
<FILENAME>tomz-20221231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 03/16/2023-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2023 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20221231.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20221231.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20221231.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20221231.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20221231.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20221231.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20221231.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20221231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20221231.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCosts" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20221231.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20221231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20221231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20221231.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20221231.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20221231.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20221231.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20221231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20221231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20221231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20221231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityTables" xlink:href="tomz-20221231.xsd#ShareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsTables" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20221231.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesTables" xlink:href="tomz-20221231.xsd#IncomeTaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20221231.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20221231.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20221231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20221231.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20221231.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20221231.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20221231.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20221231.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20221231.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20221231.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails1" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails2" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails3" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20221231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20221231.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20221231.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName" xlink:label="loc_deiEntityRegistrantName" />
    <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityRegistrantName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey" xlink:label="loc_deiEntityCentralIndexKey" />
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCentralIndexKey" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType" xlink:label="loc_deiDocumentType" />
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentType" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag" xlink:label="loc_deiAmendmentFlag" />
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentFlag" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_deiEntityVoluntaryFilers" />
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityVoluntaryFilers" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_deiCurrentFiscalYearEndDate" />
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCurrentFiscalYearEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_deiEntityWellKnownSeasonedIssuer" />
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityWellKnownSeasonedIssuer" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness" xlink:label="loc_deiEntitySmallBusiness" />
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntitySmallBusiness" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany" xlink:label="loc_deiEntityShellCompany" />
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityShellCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_deiEntityEmergingGrowthCompany" />
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityEmergingGrowthCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_deiEntityCurrentReportingStatus" />
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCurrentReportingStatus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_deiDocumentPeriodEndDate" />
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory" xlink:label="loc_deiEntityFilerCategory" />
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFilerCategory" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_deiDocumentFiscalPeriodFocus" />
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalPeriodFocus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_deiDocumentFiscalYearFocus" />
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalYearFocus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_deiEntityCommonStockSharesOutstanding" />
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCommonStockSharesOutstanding" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat" xlink:label="loc_deiEntityPublicFloat" />
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityPublicFloat" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport" xlink:label="loc_deiDocumentAnnualReport" />
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentAnnualReport" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport" xlink:label="loc_deiDocumentTransitionReport" />
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentTransitionReport" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber" xlink:label="loc_deiEntityFileNumber" />
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFileNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_deiEntityIncorporationStateCountryCode" />
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityIncorporationStateCountryCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_deiEntityTaxIdentificationNumber" />
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityTaxIdentificationNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_deiEntityAddressAddressLine1" />
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine1" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_deiEntityAddressCityOrTown" />
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCityOrTown" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_deiEntityAddressStateOrProvince" />
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressStateOrProvince" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_deiEntityAddressPostalZipCode" />
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressPostalZipCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode" xlink:label="loc_deiCityAreaCode" />
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCityAreaCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="loc_deiIcfrAuditorAttestationFlag" />
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiIcfrAuditorAttestationFlag" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorLocation" xlink:label="loc_deiAuditorLocation" />
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAuditorLocation" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorFirmId" xlink:label="loc_deiAuditorFirmId" />
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAuditorFirmId" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber" xlink:label="loc_deiLocalPhoneNumber" />
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiLocalPhoneNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle" xlink:label="loc_deiSecurity12bTitle" />
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12bTitle" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol" xlink:label="loc_deiTradingSymbol" />
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiTradingSymbol" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName" xlink:label="loc_deiSecurityExchangeName" />
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityExchangeName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_deiEntityInteractiveDataCurrent" />
    <link:presentationArc order="34" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityInteractiveDataCurrent" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorName" xlink:label="loc_deiAuditorName" />
    <link:presentationArc order="35" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAuditorName" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:title="000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_13a43e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_b21ce8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_13a43e" xlink:to="loc_us-gaapStatementTable_b21ce8" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_3bf88f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b21ce8" xlink:to="loc_us-gaapStatementLineItems_3bf88f" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_3b1545" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b21ce8" xlink:to="loc_us-gaapStatementClassOfStockAxis_3b1545" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_089e05" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_3b1545" xlink:to="loc_us-gaapClassOfStockDomain_089e05" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_6070ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_089e05" xlink:to="loc_us-gaapSeriesAPreferredStockMember_6070ec" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_931512" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_089e05" xlink:to="loc_us-gaapSeriesBPreferredStockMember_931512" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashEquivalentsAtCarryingValue_860812" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapCashEquivalentsAtCarryingValue_860812" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent_47c557" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapAccountsReceivableNetCurrent_47c557" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="loc_us-gaapOtherReceivablesNetCurrent_59e8f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapOtherReceivablesNetCurrent_59e8f6" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_2c35a0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapInventoryNet_2c35a0" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent_18411d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapDepositsAssetsCurrent_18411d" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent_dd1bc5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapPrepaidExpenseCurrent_dd1bc5" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent_585257" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapAssetsCurrent_585257" order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_67df38" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_67df38" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsAbstract" xlink:label="loc_us-gaapOtherAssetsAbstract_82f241" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_3bf88f" xlink:to="loc_us-gaapOtherAssetsAbstract_82f241" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_7b5de2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_7b5de2" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_d41a3f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_d41a3f" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:label="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_48c7ff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_48c7ff" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaapOtherAssetsNoncurrent_491b78" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapOtherAssetsNoncurrent_491b78" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets_fc8daf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapOtherAssets_fc8daf" order="14" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets_f3bc83" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapAssets_f3bc83" order="15" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_64cf4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_82f241" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_64cf4d" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_64cf4d" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent_64e471" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" xlink:to="loc_us-gaapAccountsPayableCurrent_64e471" order="18" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_24951a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_24951a" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerDepositsCurrent" xlink:label="loc_us-gaapCustomerDepositsCurrent_e3ed06" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" xlink:to="loc_us-gaapCustomerDepositsCurrent_e3ed06" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_1dd3cf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_1dd3cf" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent_e0996a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" xlink:to="loc_us-gaapLiabilitiesCurrent_e0996a" order="22" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract_6618be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_46e4fd" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract_6618be" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_b6380e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_6618be" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_b6380e" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent_cd4c1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_6618be" xlink:to="loc_us-gaapLiabilitiesNoncurrent_cd4c1c" order="25" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities_c55631" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_6618be" xlink:to="loc_us-gaapLiabilities_c55631" order="26" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_29c9f3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_6618be" xlink:to="loc_us-gaapStockholdersEquityAbstract_29c9f3" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue_e6a56d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_29c9f3" xlink:to="loc_us-gaapPreferredStockValue_e6a56d" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_94f0db" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_29c9f3" xlink:to="loc_us-gaapCommonStockValue_94f0db" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital_27c765" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_29c9f3" xlink:to="loc_us-gaapAdditionalPaidInCapital_27c765" order="30" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit_2e3f28" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_29c9f3" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit_2e3f28" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_32a401" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_29c9f3" xlink:to="loc_us-gaapStockholdersEquity_32a401" order="32" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity_e0a27d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_29c9f3" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity_e0a27d" order="33" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:title="000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_149666" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_76043e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_149666" xlink:to="loc_us-gaapStatementTable_76043e" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_aeca1b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_76043e" xlink:to="loc_us-gaapStatementLineItems_aeca1b" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_defdcf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_76043e" xlink:to="loc_us-gaapStatementClassOfStockAxis_defdcf" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_cfe595" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_defdcf" xlink:to="loc_us-gaapClassOfStockDomain_cfe595" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_4c9721" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_cfe595" xlink:to="loc_us-gaapSeriesAPreferredStockMember_4c9721" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_54b26e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_cfe595" xlink:to="loc_us-gaapSeriesBPreferredStockMember_54b26e" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_a45f5f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_aeca1b" xlink:to="loc_us-gaapStockholdersEquityAbstract_a45f5f" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare_7ff992" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare_7ff992" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_487e62" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapCommonStockSharesAuthorized_487e62" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued_780da2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapCommonStockSharesIssued_780da2" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding_e614d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapCommonStockSharesOutstanding_e614d1" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_300b9f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_300b9f" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PreferredStockParOrStatedValue" xlink:label="loc_tomzPreferredStockParOrStatedValue_19b9a4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_tomzPreferredStockParOrStatedValue_19b9a4" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_538f29" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_538f29" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_787fbe" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapPreferredStockSharesIssued_787fbe" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding_91c6fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_a45f5f" xlink:to="loc_us-gaapPreferredStockSharesOutstanding_91c6fa" order="10" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:title="000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaapIncomeStatementAbstract_bc0ef8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_3b5188" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_bc0ef8" xlink:to="loc_us-gaapRevenues_3b5188" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue_342752" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_bc0ef8" xlink:to="loc_us-gaapCostOfRevenue_342752" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit_9992bd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_bc0ef8" xlink:to="loc_us-gaapGrossProfit_9992bd" order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="loc_us-gaapCostsAndExpensesAbstract_0a9948" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_bc0ef8" xlink:to="loc_us-gaapCostsAndExpensesAbstract_0a9948" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProfessionalFees" xlink:label="loc_us-gaapProfessionalFees_46ce78" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapProfessionalFees_46ce78" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_53577b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapDepreciationAndAmortization_53577b" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingExpense" xlink:label="loc_us-gaapSellingExpense_c09e9d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapSellingExpense_c09e9d" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense_40a69f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapResearchAndDevelopmentExpense_40a69f" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ConsultingFees" xlink:label="loc_tomzConsultingFees_d29bfa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_tomzConsultingFees_d29bfa" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherGeneralAndAdministrativeExpense" xlink:label="loc_us-gaapOtherGeneralAndAdministrativeExpense_6dcc7f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapOtherGeneralAndAdministrativeExpense_6dcc7f" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses_a59441" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapOperatingExpenses_a59441" order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss_eda722" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapOperatingIncomeLoss_eda722" order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIncomeAbstract" xlink:label="loc_us-gaapOtherIncomeAbstract_d1e1b9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_0a9948" xlink:to="loc_us-gaapOtherIncomeAbstract_d1e1b9" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_becba7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_becba7" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther_88c5d7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapInterestIncomeOther_88c5d7" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense_a700c9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapInterestExpense_a700c9" order="16" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense_c46d22" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapNonoperatingIncomeExpense_c46d22" order="17" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_dee66e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_dee66e" order="18" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit_eff7d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit_eff7d9" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_fbb79a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapNetIncomeLoss_fbb79a" order="20" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_0e743a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_d1e1b9" xlink:to="loc_us-gaapEarningsPerShareAbstract_0e743a" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_71e9a0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_0e743a" xlink:to="loc_us-gaapEarningsPerShareBasic_71e9a0" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_190c69" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_0e743a" xlink:to="loc_us-gaapEarningsPerShareDiluted_190c69" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_c63ad1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_0e743a" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_c63ad1" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_a3cb1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_0e743a" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_a3cb1c" order="25" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:title="000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaapStatementOfStockholdersEquityAbstract_84d170" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_2c7aae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfStockholdersEquityAbstract_84d170" xlink:to="loc_us-gaapStatementTable_2c7aae" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_f851f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_2c7aae" xlink:to="loc_us-gaapStatementLineItems_f851f7" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis_44236c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_2c7aae" xlink:to="loc_us-gaapStatementEquityComponentsAxis_44236c" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_fe2d11" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis_44236c" xlink:to="loc_us-gaapEquityComponentDomain_fe2d11" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="loc_tomzSeriesAPreferredStocksMember_43ded0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_fe2d11" xlink:to="loc_tomzSeriesAPreferredStocksMember_43ded0" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember_e7e859" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_fe2d11" xlink:to="loc_us-gaapCommonStockMember_e7e859" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember_f46bda" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_fe2d11" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember_f46bda" order="23" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember_0f5eab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_fe2d11" xlink:to="loc_us-gaapRetainedEarningsMember_0f5eab" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_119948" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapSharesIssued_119948" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_8390ee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapStockholdersEquity_8390ee" order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityCompensation" xlink:label="loc_tomzEquityCompensation_811fd7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_tomzEquityCompensation_811fd7" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuedForServicesProvidedShares" xlink:label="loc_tomzCommonStockIssuedForServicesProvidedShares_378e65" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_tomzCommonStockIssuedForServicesProvidedShares_378e65" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuedForServicesProvidedAmount" xlink:label="loc_tomzCommonStockIssuedForServicesProvidedAmount_14ef73" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_tomzCommonStockIssuedForServicesProvidedAmount_14ef73" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_d94fb0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_d94fb0" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueNewIssues_0facd3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueNewIssues_0facd3" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_7f1186" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapNetIncomeLoss_7f1186" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsAndOptionsExercisedShares" xlink:label="loc_tomzWarrantsAndOptionsExercisedShares_6bd300" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_tomzWarrantsAndOptionsExercisedShares_6bd300" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsAndOptionsExercisedAmount" xlink:label="loc_tomzWarrantsAndOptionsExercisedAmount_b0f763" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_tomzWarrantsAndOptionsExercisedAmount_b0f763" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_2e5fb1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapSharesIssued_2e5fb1" order="11" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_12a730" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f851f7" xlink:to="loc_us-gaapStockholdersEquity_12a730" order="12" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:title="000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaapStatementOfCashFlowsAbstract_85082c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_74aa89" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_85082c" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_74aa89" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_befab5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_74aa89" xlink:to="loc_us-gaapNetIncomeLoss_befab5" order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_74aa89" xlink:to="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherDepreciationAndAmortization" xlink:label="loc_us-gaapOtherDepreciationAndAmortization_7dd930" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapOtherDepreciationAndAmortization_7dd930" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense_877465" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense_877465" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAmortization1_73d185" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAmortization1_73d185" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityCompensationExpense" xlink:label="loc_tomzEquityCompensationExpense_e9b540" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_tomzEquityCompensationExpense_e9b540" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims_7c0e20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims_7c0e20" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_d00519" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_d00519" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryLIFOReservePeriodCharge" xlink:label="loc_us-gaapInventoryLIFOReservePeriodCharge_5806b2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapInventoryLIFOReservePeriodCharge_5806b2" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_792d2f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_792d2f" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_f12a3b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_f0012c" xlink:to="loc_us-gaapIncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_f12a3b" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DecreaseIncreaseInAbstract" xlink:label="loc_tomzDecreaseIncreaseInAbstract_934aee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_f12a3b" xlink:to="loc_tomzDecreaseIncreaseInAbstract_934aee" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable_d801c5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable_d801c5" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories_3a8a8c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_us-gaapIncreaseDecreaseInInventories_3a8a8c" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense_287bb6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense_287bb6" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInDeposits_43fc64" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_us-gaapIncreaseDecreaseInDeposits_43fc64" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInOtherReceivables_29f4d6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_us-gaapIncreaseDecreaseInOtherReceivables_29f4d6" order="18" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="loc_us-gaapIncreaseDecreaseInOtherOperatingAssets_39942c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_us-gaapIncreaseDecreaseInOtherOperatingAssets_39942c" order="19" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncreaseDecreaseInAbstract" xlink:label="loc_tomzIncreaseDecreaseInAbstract_899f3f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzDecreaseIncreaseInAbstract_934aee" xlink:to="loc_tomzIncreaseDecreaseInAbstract_899f3f" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayable_01deb0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzIncreaseDecreaseInAbstract_899f3f" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayable_01deb0" order="21" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities_0a4279" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzIncreaseDecreaseInAbstract_899f3f" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedLiabilities_0a4279" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInCustomerDeposits_8b381b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzIncreaseDecreaseInAbstract_899f3f" xlink:to="loc_us-gaapIncreaseDecreaseInCustomerDeposits_8b381b" order="23" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncreaseDecreaseInLeaseLiabilities" xlink:label="loc_tomzIncreaseDecreaseInLeaseLiabilities_8033f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzIncreaseDecreaseInAbstract_899f3f" xlink:to="loc_tomzIncreaseDecreaseInLeaseLiabilities_8033f7" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_07a231" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzIncreaseDecreaseInAbstract_899f3f" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_07a231" order="25" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_81fc63" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzIncreaseDecreaseInAbstract_899f3f" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_81fc63" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CapitalizedPatentAndTrademarkCosts" xlink:label="loc_tomzCapitalizedPatentAndTrademarkCosts_14b3f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_81fc63" xlink:to="loc_tomzCapitalizedPatentAndTrademarkCosts_14b3f7" order="27" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PurchaseOfPropertyAndEquipment" xlink:label="loc_tomzPurchaseOfPropertyAndEquipment_2b85c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_81fc63" xlink:to="loc_tomzPurchaseOfPropertyAndEquipment_2b85c1" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_8dc3a4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_81fc63" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_8dc3a4" order="29" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_81fc63" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants_3d18c9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapProceedsFromIssuanceOfWarrants_3d18c9" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised_e0f368" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised_e0f368" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_2a85e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_2a85e4" order="33" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_fdce6c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_fdce6c" order="34" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_b5ab20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_b5ab20" order="35" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_a20a9d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_a20a9d" order="36" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="loc_us-gaapSupplementalCashFlowInformationAbstract_4b32b0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_596217" xlink:to="loc_us-gaapSupplementalCashFlowInformationAbstract_4b32b0" order="37" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaapIncomeTaxesPaidNet_ee1a47" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_4b32b0" xlink:to="loc_us-gaapIncomeTaxesPaidNet_ee1a47" order="38" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bb93eb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_4b32b0" xlink:to="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bb93eb" order="39" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets" xlink:label="loc_tomzPatentAndTrademarkCostsReclassifiedFromOtherAssets_e47354" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bb93eb" xlink:to="loc_tomzPatentAndTrademarkCostsReclassifiedFromOtherAssets_e47354" order="40" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/DescriptionOfBusiness" xlink:title="000007 - Disclosure - DESCRIPTION OF BUSINESS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="loc_us-gaapOrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_f226dc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NatureOfOperations" xlink:label="loc_us-gaapNatureOfOperations_6497eb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_f226dc" xlink:to="loc_us-gaapNatureOfOperations_6497eb" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_46d1ca" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaapSignificantAccountingPoliciesTextBlock_a75bf3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_46d1ca" xlink:to="loc_us-gaapSignificantAccountingPoliciesTextBlock_a75bf3" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/INVENTORIES" xlink:title="000009 - Disclosure - INVENTORIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_c58977" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="loc_us-gaapInventoryDisclosureTextBlock_85b656" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_c58977" xlink:to="loc_us-gaapInventoryDisclosureTextBlock_85b656" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDeposits" xlink:title="000010 - Disclosure - VENDOR DEPOSITS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_1b7326" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_VendorDepositsTextBlock" xlink:label="loc_tomzVendorDepositsTextBlock_efc86f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_1b7326" xlink:to="loc_tomzVendorDepositsTextBlock_efc86f" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipment" xlink:title="000011 - Disclosure - PROPERTY AND EQUIPMENT">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_a8c47d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentDisclosureTextBlock_6b49be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_a8c47d" xlink:to="loc_us-gaapPropertyPlantAndEquipmentDisclosureTextBlock_6b49be" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssets" xlink:title="000012 - Disclosure - INTANGIBLE ASSETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_8bab6a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="loc_us-gaapIntangibleAssetsDisclosureTextBlock_677773" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_8bab6a" xlink:to="loc_us-gaapIntangibleAssetsDisclosureTextBlock_677773" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LEASES" xlink:title="000013 - Disclosure - LEASES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_993600" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_de0862" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_993600" xlink:to="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_de0862" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:title="000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_ed23d2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" xlink:label="loc_us-gaapResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_33186a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_ed23d2" xlink:to="loc_us-gaapResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_33186a" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContract" xlink:title="000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_54bc30" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:label="loc_tomzCloudComputingServiceContractDisclosureTextBlock_bbc2c0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_54bc30" xlink:to="loc_tomzCloudComputingServiceContractDisclosureTextBlock_bbc2c0" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquity" xlink:title="000016 - Disclosure - SHAREHOLDERS EQUITY">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_977bb7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="loc_us-gaapStockholdersEquityNoteDisclosureTextBlock_d7fac8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_977bb7" xlink:to="loc_us-gaapStockholdersEquityNoteDisclosureTextBlock_d7fac8" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingencies" xlink:title="000017 - Disclosure - COMMITMENTS AND CONTINGENCIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_cd7b7c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock_2c18cb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_cd7b7c" xlink:to="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock_2c18cb" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreements" xlink:title="000018 - Disclosure - CONTRACTS AND AGREEMENTS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_985c50" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ContractsAndAgreementsTextBlock" xlink:label="loc_tomzContractsAndAgreementsTextBlock_62495e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_985c50" xlink:to="loc_tomzContractsAndAgreementsTextBlock_62495e" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:title="000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_86a36a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:label="loc_us-gaapAccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_08c483" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_86a36a" xlink:to="loc_us-gaapAccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_08c483" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarranty" xlink:title="000020 - Disclosure - ACCRUED WARRANTY">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_b73774" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GuaranteesTextBlock" xlink:label="loc_us-gaapGuaranteesTextBlock_4cfcff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_b73774" xlink:to="loc_us-gaapGuaranteesTextBlock_4cfcff" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="000021 - Disclosure - INCOME TAXES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_3cf4f9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="loc_us-gaapIncomeTaxDisclosureTextBlock_40cbe4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_3cf4f9" xlink:to="loc_us-gaapIncomeTaxDisclosureTextBlock_40cbe4" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="000022 - Disclosure - CUSTOMER CONCENTRATION">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_4a8fa0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:label="loc_us-gaapConcentrationRiskDisclosureTextBlock_1a007d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_4a8fa0" xlink:to="loc_us-gaapConcentrationRiskDisclosureTextBlock_1a007d" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="000023 - Disclosure - SUBSEQUENT EVENTS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_59f3ce" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaapSubsequentEventsTextBlock_d4d8b2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_59f3ce" xlink:to="loc_us-gaapSubsequentEventsTextBlock_d4d8b2" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="000024 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_c033fd" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="loc_us-gaapConsolidationPolicyTextBlock_f2f1bc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapConsolidationPolicyTextBlock_f2f1bc" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="loc_us-gaapPriorPeriodReclassificationAdjustmentDescription_5d4694" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapPriorPeriodReclassificationAdjustmentDescription_5d4694" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UseOfEstimates" xlink:label="loc_us-gaapUseOfEstimates_a55053" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapUseOfEstimates_a55053" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="loc_us-gaapFairValueMeasurementPolicyPolicyTextBlock_fca2be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapFairValueMeasurementPolicyPolicyTextBlock_fca2be" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_0f0ac8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_0f0ac8" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="loc_us-gaapReceivablesPolicyTextBlock_0c746d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapReceivablesPolicyTextBlock_0c746d" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaapInventoryPolicyTextBlock_e25beb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapInventoryPolicyTextBlock_e25beb" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_18cd4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_18cd4d" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="loc_us-gaapLesseeLeasesPolicyTextBlock_85b1f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapLesseeLeasesPolicyTextBlock_85b1f6" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="loc_us-gaapResearchDevelopmentAndComputerSoftwarePolicyTextBlock_805e52" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapResearchDevelopmentAndComputerSoftwarePolicyTextBlock_805e52" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AccountsPayablePolicyTextBlock" xlink:label="loc_tomzAccountsPayablePolicyTextBlock_a23e74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_tomzAccountsPayablePolicyTextBlock_a23e74" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyPolicy" xlink:label="loc_us-gaapExtendedProductWarrantyPolicy_3093a1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapExtendedProductWarrantyPolicy_3093a1" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaapIncomeTaxPolicyTextBlock_0cdd74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapIncomeTaxPolicyTextBlock_0cdd74" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaapEarningsPerSharePolicyTextBlock_8dc282" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapEarningsPerSharePolicyTextBlock_8dc282" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaapRevenueRecognitionPolicyTextBlock_dd9e60" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapRevenueRecognitionPolicyTextBlock_dd9e60" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_2bb2b4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_2bb2b4" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="loc_us-gaapConcentrationRiskCreditRisk_6b0a7f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapConcentrationRiskCreditRisk_6b0a7f" order="17" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" xlink:label="loc_tomzLonglivedAssetsIncludingAcquiredIntangibleAssets_7beec0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_tomzLonglivedAssetsIncludingAcquiredIntangibleAssets_7beec0" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="loc_us-gaapAdvertisingCostsPolicyTextBlock_28e27b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapAdvertisingCostsPolicyTextBlock_28e27b" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="loc_us-gaapResearchAndDevelopmentExpensePolicy_cb7046" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapResearchAndDevelopmentExpensePolicy_cb7046" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="loc_us-gaapBusinessCombinationsPolicy_d88ceb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapBusinessCombinationsPolicy_d88ceb" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_805974" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_c033fd" xlink:to="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_805974" order="22" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_f7a63b" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock" xlink:label="loc_us-gaapImpairmentEffectsOnEarningsPerShareTableTextBlock_79b0a7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_f7a63b" xlink:to="loc_us-gaapImpairmentEffectsOnEarningsPerShareTableTextBlock_79b0a7" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="loc_us-gaapDisaggregationOfRevenueTableTextBlock_18ba8f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_f7a63b" xlink:to="loc_us-gaapDisaggregationOfRevenueTableTextBlock_18ba8f" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="000026 - Disclosure - INVENTORIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_3a41e8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_fefb1e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_3a41e8" xlink:to="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_fefb1e" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="000027 - Disclosure - PROPERTY AND EQUIPMENT (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_a01e76" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTextBlock_504a0a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_a01e76" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTextBlock_504a0a" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="000028 - Disclosure - INTANGIBLE ASSETS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_95e2cd" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_e88493" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_95e2cd" xlink:to="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_e88493" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="loc_us-gaapScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_b6575d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_95e2cd" xlink:to="loc_us-gaapScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_b6575d" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="loc_us-gaapScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_a3d0f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_95e2cd" xlink:to="loc_us-gaapScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_a3d0f7" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="000029 - Disclosure - LEASES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_63ff6f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="loc_us-gaapLeaseCostTableTextBlock_ebb819" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_63ff6f" xlink:to="loc_us-gaapLeaseCostTableTextBlock_ebb819" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OperatingLeaseLiabilityTableTextBlock" xlink:label="loc_tomzOperatingLeaseLiabilityTableTextBlock_a6886d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_63ff6f" xlink:to="loc_tomzOperatingLeaseLiabilityTableTextBlock_a6886d" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_LeaseOtherInformationTableTextBlock" xlink:label="loc_tomzLeaseOtherInformationTableTextBlock_0749e1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_63ff6f" xlink:to="loc_tomzLeaseOtherInformationTableTextBlock_0749e1" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="loc_tomzSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_6bdc04" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_63ff6f" xlink:to="loc_tomzSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_6bdc04" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:label="loc_us-gaapLessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_ad9869" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_63ff6f" xlink:to="loc_us-gaapLessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_ad9869" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:title="000030 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_5c0ee4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" xlink:label="loc_tomzCapitalizedSoftwareDevelopmentCostsTableTextBlock_7337b1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_5c0ee4" xlink:to="loc_tomzCapitalizedSoftwareDevelopmentCostsTableTextBlock_7337b1" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityTables" xlink:title="000031 - Disclosure - SHAREHOLDERS EQUITY (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_1dcdfc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:label="loc_us-gaapScheduleOfStockOptionsRollForwardTableTextBlock_a2d8e0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_1dcdfc" xlink:to="loc_us-gaapScheduleOfStockOptionsRollForwardTableTextBlock_a2d8e0" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_005bf8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_1dcdfc" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_005bf8" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_4260f9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_1dcdfc" xlink:to="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_4260f9" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsOutstandingAndExercisableByPriceRange" xlink:label="loc_tomzWarrantsOutstandingAndExercisableByPriceRange_0f3cb6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_1dcdfc" xlink:to="loc_tomzWarrantsOutstandingAndExercisableByPriceRange_0f3cb6" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsTables" xlink:title="000032 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2e4ec0" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ApproximateMinimumContractPaymentsTableTextBlock" xlink:label="loc_tomzApproximateMinimumContractPaymentsTableTextBlock_dd6d77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2e4ec0" xlink:to="loc_tomzApproximateMinimumContractPaymentsTableTextBlock_dd6d77" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="000033 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_0d921f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_5de16d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_0d921f" xlink:to="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_5de16d" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="000034 - Disclosure - ACCRUED WARRANTY (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_9a5ec8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="loc_us-gaapScheduleOfProductWarrantyLiabilityTableTextBlock_69fd1f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_9a5ec8" xlink:to="loc_us-gaapScheduleOfProductWarrantyLiabilityTableTextBlock_69fd1f" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesTables" xlink:title="000035 - Disclosure - INCOME TAXES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_d7102e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="loc_us-gaapScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_ddf3d8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_d7102e" xlink:to="loc_us-gaapScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_ddf3d8" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="loc_us-gaapScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_1c9afe" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_d7102e" xlink:to="loc_us-gaapScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_1c9afe" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="loc_us-gaapScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_a78828" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_d7102e" xlink:to="loc_us-gaapScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_a78828" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="loc_us-gaapScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_a839c4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_d7102e" xlink:to="loc_us-gaapScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_a839c4" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="000036 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_67fc05" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_b20f47" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_67fc05" xlink:to="loc_us-gaapNetIncomeLoss_b20f47" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_NetLossAttributableToCommonShareholders" xlink:label="loc_tomzNetLossAttributableToCommonShareholders_e5dda7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_67fc05" xlink:to="loc_tomzNetLossAttributableToCommonShareholders_e5dda7" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_29576f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_67fc05" xlink:to="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_29576f" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_ea9020" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_29576f" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_ea9020" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_25f71e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_29576f" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_25f71e" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_e4988c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_29576f" xlink:to="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_e4988c" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Basic" xlink:label="loc_tomzBasic_08b9a4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_e4988c" xlink:to="loc_tomzBasic_08b9a4" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Diluted" xlink:label="loc_tomzDiluted_196fbf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_e4988c" xlink:to="loc_tomzDiluted_196fbf" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_31258a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_c7fecf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_31258a" xlink:to="loc_us-gaapNetIncomeLoss_c7fecf" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_ded24b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_31258a" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_ded24b" order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageNumberOfDilutedShareOutstanding1" xlink:label="loc_tomzWeightedAverageNumberOfDilutedShareOutstanding1_61abb8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_31258a" xlink:to="loc_tomzWeightedAverageNumberOfDilutedShareOutstanding1_61abb8" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_066111" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_31258a" xlink:to="loc_us-gaapEarningsPerShareBasic_066111" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_400af1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_31258a" xlink:to="loc_us-gaapEarningsPerShareDiluted_400af1" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_38177f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_97b7a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_38177f" xlink:to="loc_us-gaapStatementTable_97b7a2" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_740fa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_97b7a2" xlink:to="loc_us-gaapStatementLineItems_740fa4" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis_0be72b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_97b7a2" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis_0be72b" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_ea6035" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis_0be72b" xlink:to="loc_us-gaapSegmentDomain_ea6035" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srtStatementGeographicalAxis_d263e9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_97b7a2" xlink:to="loc_srtStatementGeographicalAxis_d263e9" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srtSegmentGeographicalDomain_fed753" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtStatementGeographicalAxis_d263e9" xlink:to="loc_srtSegmentGeographicalDomain_fed753" order="40" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SteraMistPRoductMember" xlink:label="loc_tomzSteraMistPRoductMember_28295d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_ea6035" xlink:to="loc_tomzSteraMistPRoductMember_28295d" order="41" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ServiceAndTrainingMember" xlink:label="loc_tomzServiceAndTrainingMember_626262" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_ea6035" xlink:to="loc_tomzServiceAndTrainingMember_626262" order="42" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_UnitedStatesMember" xlink:label="loc_tomzUnitedStatesMember_b791c9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_ea6035" xlink:to="loc_tomzUnitedStatesMember_b791c9" order="43" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_InternationalMember" xlink:label="loc_tomzInternationalMember_7bfecd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_ea6035" xlink:to="loc_tomzInternationalMember_7bfecd" order="44" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GeographicRegionMember" xlink:label="loc_tomzGeographicRegionMember_4d3c25" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtSegmentGeographicalDomain_fed753" xlink:to="loc_tomzGeographicRegionMember_4d3c25" order="45" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_688500" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_740fa4" xlink:to="loc_us-gaapRevenues_688500" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ChangesInRevenue" xlink:label="loc_tomzChangesInRevenue_7b12b2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_740fa4" xlink:to="loc_tomzChangesInRevenue_7b12b2" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_1e9d01" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_e904fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_1e9d01" xlink:to="loc_us-gaapStatementTable_e904fa" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_f900ef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapStatementLineItems_f900ef" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis_207250" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis_207250" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_e3d56f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis_207250" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_e3d56f" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_4a7837" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_srtMajorCustomersAxis_4a7837" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_37f318" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_4a7837" xlink:to="loc_srtNameOfMajorCustomerDomain_37f318" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="loc_us-gaapExtinguishmentOfDebtAxis_99621b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapExtinguishmentOfDebtAxis_99621b" order="60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain_d2eaaa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis_99621b" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain_d2eaaa" order="60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis_2ab9b3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapIncomeStatementLocationAxis_2ab9b3" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_c819b2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationAxis_2ab9b3" xlink:to="loc_us-gaapIncomeStatementLocationDomain_c819b2" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_7d7031" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_7d7031" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_5be2f8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_7d7031" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_5be2f8" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_051961" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapStatementClassOfStockAxis_051961" order="110" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_7c2af1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_051961" xlink:to="loc_us-gaapClassOfStockDomain_7c2af1" order="110" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_af7d34" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapPlanNameAxis_af7d34" order="130" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_a691f5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_af7d34" xlink:to="loc_us-gaapPlanNameDomain_a691f5" order="130" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_b88a54" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e904fa" xlink:to="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_b88a54" order="150" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain_28bfb6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_b88a54" xlink:to="loc_us-gaapRelatedPartyDomain_28bfb6" order="150" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SoftwareDevelopmentMember" xlink:label="loc_us-gaapSoftwareDevelopmentMember_50e726" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_e3d56f" xlink:to="loc_us-gaapSoftwareDevelopmentMember_50e726" order="151" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TwoVendorsMember" xlink:label="loc_tomzTwoVendorsMember_7f0760" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_37f318" xlink:to="loc_tomzTwoVendorsMember_7f0760" order="152" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableMember" xlink:label="loc_us-gaapAccountsPayableMember_54bd27" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtinguishmentOfDebtTypeDomain_d2eaaa" xlink:to="loc_us-gaapAccountsPayableMember_54bd27" order="153" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfSalesMember" xlink:label="loc_us-gaapCostOfSalesMember_b34114" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationDomain_c819b2" xlink:to="loc_us-gaapCostOfSalesMember_b34114" order="154" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_2a9f6d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_5be2f8" xlink:to="loc_tomzWarrantsMember_2a9f6d" order="155" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_3d1458" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_7c2af1" xlink:to="loc_tomzStockOptionsMember_3d1458" order="156" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="loc_tomzEquityIncentivePlanOneMember_087448" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_a691f5" xlink:to="loc_tomzEquityIncentivePlanOneMember_087448" order="157" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_DirectorMember" xlink:label="loc_srtDirectorMember_b2372a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_28bfb6" xlink:to="loc_srtDirectorMember_b2372a" order="158" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts_4a3573" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts_4a3573" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_9e8df0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_9e8df0" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryValuationReserves" xlink:label="loc_us-gaapInventoryValuationReserves_80b4d0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapInventoryValuationReserves_80b4d0" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_ba8524" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_ba8524" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaapAdvertisingExpense_732363" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapAdvertisingExpense_732363" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ResearchAndDevelopmentsExpense" xlink:label="loc_tomzResearchAndDevelopmentsExpense_bacce9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_tomzResearchAndDevelopmentsExpense_bacce9" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense_45eb0e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense_45eb0e" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuableUponConversionOfOutstandingShares" xlink:label="loc_tomzCommonStockIssuableUponConversionOfOutstandingShares_37f467" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_tomzCommonStockIssuableUponConversionOfOutstandingShares_37f467" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" xlink:label="loc_tomzAmortizationOfCapitalizedSoftwareDevelopmentCosts_7922b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_tomzAmortizationOfCapitalizedSoftwareDevelopmentCosts_7922b5" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ConcentrationRiskPercentage" xlink:label="loc_tomzConcentrationRiskPercentage_f57ed8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_tomzConcentrationRiskPercentage_f57ed8" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_f66d0c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_f66d0c" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_3101ce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_3101ce" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_be2395" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_us-gaapCommonStockSharesAuthorized_be2395" order="13" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockSharesIssuedVested" xlink:label="loc_tomzCommonStockSharesIssuedVested_bde264" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f900ef" xlink:to="loc_tomzCommonStockSharesIssuedVested_bde264" order="14" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="000040 - Disclosure - INVENTORIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_67a209" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods_fe31d0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_67a209" xlink:to="loc_us-gaapInventoryFinishedGoods_fe31d0" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials_3bf092" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_67a209" xlink:to="loc_us-gaapInventoryRawMaterials_3bf092" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryValuationReserves" xlink:label="loc_us-gaapInventoryValuationReserves_0b4264" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_67a209" xlink:to="loc_us-gaapInventoryValuationReserves_0b4264" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_989cce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_67a209" xlink:to="loc_us-gaapInventoryNet_989cce" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="000041 - Disclosure - VENDOR DEPOSITS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_64bbd6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Deposits" xlink:label="loc_us-gaapDeposits_196038" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_64bbd6" xlink:to="loc_us-gaapDeposits_196038" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="000042 - Disclosure - PROPERTY AND EQUIPMENT (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FurnitureAndFixturesGross" xlink:label="loc_us-gaapFurnitureAndFixturesGross_978531" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapFurnitureAndFixturesGross_978531" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Equipments" xlink:label="loc_tomzEquipments_af390d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_tomzEquipments_af390d" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_5e6d8a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_5e6d8a" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ComputerSoftware" xlink:label="loc_tomzComputerSoftware_0a8b8a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_tomzComputerSoftware_0a8b8a" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsGross" xlink:label="loc_us-gaapLeaseholdImprovementsGross_eb6159" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapLeaseholdImprovementsGross_eb6159" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConstructionInProgressGross" xlink:label="loc_us-gaapConstructionInProgressGross_dec256" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapConstructionInProgressGross_dec256" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross" xlink:label="loc_us-gaapCapitalizedCostsOilAndGasProducingActivitiesGross_57c4ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapCapitalizedCostsOilAndGasProducingActivitiesGross_57c4ab" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross_cf49a4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapPropertyPlantAndEquipmentGross_cf49a4" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_52e164" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_52e164" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_26d52e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_e0424f" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_26d52e" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="000043 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_55a70e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaapDepreciation_3bb8e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_55a70e" xlink:to="loc_us-gaapDepreciation_3bb8e2" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AmortizationOfTenantImprovementAllowance" xlink:label="loc_tomzAmortizationOfTenantImprovementAllowance_02040a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_55a70e" xlink:to="loc_tomzAmortizationOfTenantImprovementAllowance_02040a" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="000044 - Disclosure - INTANGIBLE ASSETS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_02e6c6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross_37e0f3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_02e6c6" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross_37e0f3" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_02ae4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_02e6c6" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_02ae4d" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IntangibleAssetsNet" xlink:label="loc_tomzIntangibleAssetsNet_742da6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_02e6c6" xlink:to="loc_tomzIntangibleAssetsNet_742da6" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="000045 - Disclosure - INTANGIBLE ASSETS (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_24d992" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedTrademarks" xlink:label="loc_us-gaapIndefiniteLivedTrademarks_e058e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_24d992" xlink:to="loc_us-gaapIndefiniteLivedTrademarks_e058e2" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_aab385" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_24d992" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_aab385" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="000046 - Disclosure - INTANGIBLE ASSETS (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_2b3ae2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_2b3ae2" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_5e6862" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_5e6862" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_19fa83" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_19fa83" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f6b514" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f6b514" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour_133b47" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour_133b47" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive_54fac5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive_54fac5" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_4e9b66" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_4e9b66" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet_84518c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_a052ee" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsNet_84518c" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="000047 - Disclosure - INTANGIBLE ASSETS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_5d75a3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaapAmortizationOfIntangibleAssets_b847bd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_5d75a3" xlink:to="loc_us-gaapAmortizationOfIntangibleAssets_b847bd" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="000048 - Disclosure - LEASES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_b5169f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract_d3bdec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b5169f" xlink:to="loc_us-gaapAssetsAbstract_d3bdec" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_95868f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract_d3bdec" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_95868f" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAbstract" xlink:label="loc_us-gaapLiabilitiesAbstract_081cb4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract_d3bdec" xlink:to="loc_us-gaapLiabilitiesAbstract_081cb4" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_c44d4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAbstract_081cb4" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_c44d4d" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_fac7a0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAbstract_081cb4" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_fac7a0" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability_03f1a3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAbstract_081cb4" xlink:to="loc_us-gaapOperatingLeaseLiability_03f1a3" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="000049 - Disclosure - LEASES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_1da653" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseExpense" xlink:label="loc_us-gaapOperatingLeaseExpense_0768c2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_1da653" xlink:to="loc_us-gaapOperatingLeaseExpense_0768c2" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="000050 - Disclosure - LEASES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_eff802" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:label="loc_tomzOperatingLeaseWeightedAveragesRemainingLeaseTerm_a879b8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_eff802" xlink:to="loc_tomzOperatingLeaseWeightedAveragesRemainingLeaseTerm_a879b8" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseDiscountRate" xlink:label="loc_us-gaapLesseeOperatingLeaseDiscountRate_5f4c05" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_eff802" xlink:to="loc_us-gaapLesseeOperatingLeaseDiscountRate_5f4c05" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="000051 - Disclosure - LEASES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_380d6a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:label="loc_us-gaapOperatingLeaseInitialDirectCostExpenseOverTerm_2e5f55" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_380d6a" xlink:to="loc_us-gaapOperatingLeaseInitialDirectCostExpenseOverTerm_2e5f55" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="000052 - Disclosure - LEASES (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_624a09" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_fc25b3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_fc25b3" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_b78fd5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_b78fd5" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_e3aa80" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_e3aa80" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_11c19f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_11c19f" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_f7c824" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_f7c824" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_4b69fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_4b69fa" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_1cf8e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_1cf8e2" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_3a1c2d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_3a1c2d" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalLeaseObligationsCurrent" xlink:label="loc_us-gaapCapitalLeaseObligationsCurrent_8f1b74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapCapitalLeaseObligationsCurrent_8f1b74" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_cbb836" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_cbb836" order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_f4526a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_624a09" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_f4526a" order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="000053 - Disclosure - LEASES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_b95d29" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermLease" xlink:label="loc_tomzTermLease_81ec5f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b95d29" xlink:to="loc_tomzTermLease_81ec5f" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AreaOfLand" xlink:label="loc_us-gaapAreaOfLand_3cf092" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b95d29" xlink:to="loc_us-gaapAreaOfLand_3cf092" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="loc_us-gaapOperatingLeasesRentExpenseNet_4f4acd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b95d29" xlink:to="loc_us-gaapOperatingLeasesRentExpenseNet_4f4acd" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_MaximumIncreasesRentPercentage" xlink:label="loc_tomzMaximumIncreasesRentPercentage_99ccbc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b95d29" xlink:to="loc_tomzMaximumIncreasesRentPercentage_99ccbc" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WorkersCompensationDiscountPercent" xlink:label="loc_us-gaapWorkersCompensationDiscountPercent_93bf1b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b95d29" xlink:to="loc_us-gaapWorkersCompensationDiscountPercent_93bf1b" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:label="loc_us-gaapPaymentsForProceedsFromTenantAllowance_451c44" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b95d29" xlink:to="loc_us-gaapPaymentsForProceedsFromTenantAllowance_451c44" order="6" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:title="000054 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_355fcd" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareGross" xlink:label="loc_us-gaapCapitalizedComputerSoftwareGross_d7ef74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_355fcd" xlink:to="loc_us-gaapCapitalizedComputerSoftwareGross_d7ef74" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAccumulatedAmortization_eae42e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_355fcd" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAccumulatedAmortization_eae42e" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNet_c8e4df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_355fcd" xlink:to="loc_us-gaapCapitalizedComputerSoftwareNet_c8e4df" order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:title="000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_fcd093" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" xlink:label="loc_tomzAmortizationOfCapitalizedSoftwareDevelopmentCosts_aecc20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_fcd093" xlink:to="loc_tomzAmortizationOfCapitalizedSoftwareDevelopmentCosts_aecc20" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="000056 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_c87aad" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ProceedsFromServiceContractOfReceivables" xlink:label="loc_tomzProceedsFromServiceContractOfReceivables_41533c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_c87aad" xlink:to="loc_tomzProceedsFromServiceContractOfReceivables_41533c" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssets_83371a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_c87aad" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssets_83371a" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AnnualPaymentsOnContractTerm" xlink:label="loc_tomzAnnualPaymentsOnContractTerm_f1058e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_c87aad" xlink:to="loc_tomzAnnualPaymentsOnContractTerm_f1058e" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:label="loc_us-gaapCostOfGoodsAndServicesSoldAmortization_299e24" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_c87aad" xlink:to="loc_us-gaapCostOfGoodsAndServicesSoldAmortization_299e24" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="000057 - Disclosure - SHAREHOLDERS EQUITY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_642ff2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_8589ef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_642ff2" xlink:to="loc_us-gaapStatementTable_8589ef" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_c57086" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_8589ef" xlink:to="loc_us-gaapStatementLineItems_c57086" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_9479be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_8589ef" xlink:to="loc_us-gaapStatementClassOfStockAxis_9479be" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_acc1cd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_9479be" xlink:to="loc_us-gaapClassOfStockDomain_acc1cd" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockWarrantMember" xlink:label="loc_tomzStockWarrantMember_8be9a5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_acc1cd" xlink:to="loc_tomzStockWarrantMember_8be9a5" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OutstandingBeginningOfPeriod" xlink:label="loc_tomzOutstandingBeginningOfPeriod_22418e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c57086" xlink:to="loc_tomzOutstandingBeginningOfPeriod_22418e" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_09f4fe" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c57086" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_09f4fe" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_de4ecd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c57086" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_de4ecd" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_785fab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c57086" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_785fab" order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OutstandingEndOfPeriod" xlink:label="loc_tomzOutstandingEndOfPeriod_68f349" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c57086" xlink:to="loc_tomzOutstandingEndOfPeriod_68f349" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceAbstract" xlink:label="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c57086" xlink:to="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" xlink:label="loc_tomzWeightedAverageExercisePriceOutstandingBeginningBalance_61bf50" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" xlink:to="loc_tomzWeightedAverageExercisePriceOutstandingBeginningBalance_61bf50" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceGranted" xlink:label="loc_tomzWeightedAverageExercisePriceGranted_b78315" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" xlink:to="loc_tomzWeightedAverageExercisePriceGranted_b78315" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceExercised" xlink:label="loc_tomzWeightedAverageExercisePriceExercised_9842dc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" xlink:to="loc_tomzWeightedAverageExercisePriceExercised_9842dc" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceExpired" xlink:label="loc_tomzWeightedAverageExercisePriceExpired_1ce3c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" xlink:to="loc_tomzWeightedAverageExercisePriceExpired_1ce3c6" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceOutstandingEndingBalance" xlink:label="loc_tomzWeightedAverageExercisePriceOutstandingEndingBalance_b94067" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_9f12e4" xlink:to="loc_tomzWeightedAverageExercisePriceOutstandingEndingBalance_b94067" order="11" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="000058 - Disclosure - SHAREHOLDERS EQUITY (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_5bbd69" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_9c1e98" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_5bbd69" xlink:to="loc_us-gaapStatementTable_9c1e98" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_0a9cf5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_9c1e98" xlink:to="loc_us-gaapStatementLineItems_0a9cf5" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_d6a419" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_9c1e98" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_d6a419" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_d6a419" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeOneMember" xlink:label="loc_tomzRangeOneMember_d064be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeOneMember_d064be" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeSevenMember" xlink:label="loc_tomzRangeSevenMember_170d6f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeSevenMember_170d6f" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeThreeMember" xlink:label="loc_tomzRangeThreeMember_f654b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeThreeMember_f654b5" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeFourMember" xlink:label="loc_tomzRangeFourMember_75071c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeFourMember_75071c" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeFiveMember" xlink:label="loc_tomzRangeFiveMember_1c606b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeFiveMember_1c606b" order="25" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeTwoMember" xlink:label="loc_tomzRangeTwoMember_6b88c5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeTwoMember_6b88c5" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeEightMember" xlink:label="loc_tomzRangeEightMember_529765" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeEightMember_529765" order="27" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeNineMember" xlink:label="loc_tomzRangeNineMember_6063eb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_5978b2" xlink:to="loc_tomzRangeNineMember_6063eb" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_d4e2f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_d4e2f7" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers_56eb26" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers_56eb26" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_e0eb09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_e0eb09" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_tomzSharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2_e9523c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_tomzSharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2_e9523c" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers_e0ce7a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers_e0ce7a" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_717296" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_717296" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9c928c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_9c928c" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices_974c09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0a9cf5" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices_974c09" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="000059 - Disclosure - SHAREHOLDERS EQUITY (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_ed2e1e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_d42e7e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_ed2e1e" xlink:to="loc_us-gaapStatementTable_d42e7e" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_1e4ce3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_d42e7e" xlink:to="loc_us-gaapStatementLineItems_1e4ce3" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_6dc12c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_d42e7e" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_6dc12c" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_0d59b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_6dc12c" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_0d59b5" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_36b981" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_0d59b5" xlink:to="loc_tomzWarrantsMember_36b981" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1e4ce3" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7cde3c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7cde3c" order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_9d5fd4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_9d5fd4" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_3731be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_3731be" order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_c1ac0c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_c1ac0c" order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_33e58a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_33e58a" order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_d4553a" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_f683dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_f683dd" order="8" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_0ec9ee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_0ec9ee" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_7a70fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_7a70fa" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_9db4b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_9db4b5" order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_fae60c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_076228" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_fae60c" order="12" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="000060 - Disclosure - SHAREHOLDERS EQUITY (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_c89f56" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_66d5f4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_c89f56" xlink:to="loc_us-gaapStatementTable_66d5f4" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_afb0f0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_66d5f4" xlink:to="loc_us-gaapStatementLineItems_afb0f0" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis_4779e6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_66d5f4" xlink:to="loc_us-gaapAwardTypeAxis_4779e6" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis_4779e6" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsOneMember" xlink:label="loc_tomzWarrantsOneMember_3625dc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsOneMember_3625dc" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTwoMember" xlink:label="loc_tomzWarrantsTwoMember_814f35" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsTwoMember_814f35" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsThreeMember" xlink:label="loc_tomzWarrantsThreeMember_0a76e9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsThreeMember_0a76e9" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsFourMember" xlink:label="loc_tomzWarrantsFourMember_161337" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsFourMember_161337" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsFiveMember" xlink:label="loc_tomzWarrantsFiveMember_ed082f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsFiveMember_ed082f" order="25" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsSevenMember" xlink:label="loc_tomzWarrantsSevenMember_0d22b4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsSevenMember_0d22b4" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsEightMember" xlink:label="loc_tomzWarrantsEightMember_b6bacd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsEightMember_b6bacd" order="27" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTenMember" xlink:label="loc_tomzWarrantsTenMember_cebe80" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsTenMember_cebe80" order="28" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsElevenMember" xlink:label="loc_tomzWarrantsElevenMember_69a744" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsElevenMember_69a744" order="29" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTwelveMember" xlink:label="loc_tomzWarrantsTwelveMember_d70884" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0c5ee2" xlink:to="loc_tomzWarrantsTwelveMember_d70884" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_2341cd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_afb0f0" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_2341cd" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_34391a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_afb0f0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_34391a" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_62ef1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_afb0f0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_62ef1c" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_4d1385" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_afb0f0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_4d1385" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="000061 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_ff4784" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_207ea3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_ff4784" xlink:to="loc_us-gaapStatementTable_207ea3" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_300954" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_207ea3" xlink:to="loc_us-gaapStatementLineItems_300954" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis_f9b950" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_207ea3" xlink:to="loc_srtTitleOfIndividualAxis_f9b950" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_38f2e3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis_f9b950" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_38f2e3" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis_da5dac" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_207ea3" xlink:to="loc_us-gaapAwardDateAxis_da5dac" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_bea5ed" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateAxis_da5dac" xlink:to="loc_us-gaapAwardDateDomain_bea5ed" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_36c002" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_207ea3" xlink:to="loc_us-gaapStatementClassOfStockAxis_36c002" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_d63133" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_36c002" xlink:to="loc_us-gaapClassOfStockDomain_d63133" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="loc_srtRangeAxis_d68bb1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_207ea3" xlink:to="loc_srtRangeAxis_d68bb1" order="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="loc_srtRangeMember_09698a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtRangeAxis_d68bb1" xlink:to="loc_srtRangeMember_09698a" order="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_40f6df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d63133" xlink:to="loc_us-gaapSeriesAPreferredStockMember_40f6df" order="71" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_4ff39b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d63133" xlink:to="loc_us-gaapSeriesBPreferredStockMember_4ff39b" order="72" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PrivatePlacementsMember" xlink:label="loc_tomzPrivatePlacementsMember_fec56e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_38f2e3" xlink:to="loc_tomzPrivatePlacementsMember_fec56e" order="73" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PlacementAgentMember" xlink:label="loc_tomzPlacementAgentMember_38146a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_38f2e3" xlink:to="loc_tomzPlacementAgentMember_38146a" order="74" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwentyTwoMember" xlink:label="loc_tomzJanuaryTwentyTwentyTwoMember_c1b253" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_bea5ed" xlink:to="loc_tomzJanuaryTwentyTwentyTwoMember_c1b253" order="75" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwentyOneMember" xlink:label="loc_tomzJanuaryTwentyTwentyOneMember_ad2db1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_bea5ed" xlink:to="loc_tomzJanuaryTwentyTwentyOneMember_ad2db1" order="76" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ChiefOperatingOfficersMember" xlink:label="loc_tomzChiefOperatingOfficersMember_67bc99" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_38f2e3" xlink:to="loc_tomzChiefOperatingOfficersMember_67bc99" order="77" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_c70304" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d63133" xlink:to="loc_tomzStockOptionsMember_c70304" order="78" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwoMember" xlink:label="loc_tomzJanuaryTwentyTwoMember_4e5230" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_bea5ed" xlink:to="loc_tomzJanuaryTwentyTwoMember_4e5230" order="79" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockOptionMember" xlink:label="loc_us-gaapStockOptionMember_3091ea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d63133" xlink:to="loc_us-gaapStockOptionMember_3091ea" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="loc_srtMinimumMember_56321e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtRangeMember_09698a" xlink:to="loc_srtMinimumMember_56321e" order="81" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="loc_srtMaximumMember_6c3572" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtRangeMember_09698a" xlink:to="loc_srtMaximumMember_6c3572" order="82" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockShareSold" xlink:label="loc_tomzCommonStockShareSold_8025f1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzCommonStockShareSold_8025f1" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IssuedWarrantsInConcurrentPrivatePlacement" xlink:label="loc_tomzIssuedWarrantsInConcurrentPrivatePlacement_8c38ef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzIssuedWarrantsInConcurrentPrivatePlacement_8c38ef" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IssuedWarrantsInConcurrentPlacementAgent" xlink:label="loc_tomzIssuedWarrantsInConcurrentPlacementAgent_d7776a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzIssuedWarrantsInConcurrentPlacementAgent_d7776a" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermsOfOutstandingWarrantsToPurchase" xlink:label="loc_tomzTermsOfOutstandingWarrantsToPurchase_3ec839" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzTermsOfOutstandingWarrantsToPurchase_3ec839" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GrantFairValueOfPerShare" xlink:label="loc_tomzGrantFairValueOfPerShare_365053" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzGrantFairValueOfPerShare_365053" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants_cb2d25" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapProceedsFromIssuanceOfWarrants_cb2d25" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExercisePriceOfWarrant" xlink:label="loc_tomzExercisePriceOfWarrant_770e72" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzExercisePriceOfWarrant_770e72" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantAmendmentDescription" xlink:label="loc_tomzWarrantAmendmentDescription_7bb891" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzWarrantAmendmentDescription_7bb891" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AggregateCashConsideration" xlink:label="loc_tomzAggregateCashConsideration_92939b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzAggregateCashConsideration_92939b" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock_34f473" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock_34f473" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_8eb54d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_8eb54d" order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_a783d8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapPreferredStockSharesIssued_a783d8" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding_d417a4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapPreferredStockSharesOutstanding_d417a4" order="13" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_1adb9d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_1adb9d" order="14" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstanding" xlink:label="loc_us-gaapWarrantsAndRightsOutstanding_c5c9de" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapWarrantsAndRightsOutstanding_c5c9de" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_c6ed9c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_c6ed9c" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_cc4e3d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapCommonStockValue_cc4e3d" order="17" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_3d45fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_3d45fd" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_3f5f56" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_3f5f56" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_3d2f8c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_3d2f8c" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_20eb5c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_20eb5c" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_FairValueOfStockOption" xlink:label="loc_tomzFairValueOfStockOption_f89ad3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_tomzFairValueOfStockOption_f89ad3" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1_f8334e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1_f8334e" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation_ce2c76" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapShareBasedCompensation_ce2c76" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_8ac898" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_8ac898" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_8a3d11" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_300954" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_8a3d11" order="26" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:title="000062 - Disclosure - CONTRACTS AND AGREEMENTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_eadbcc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInSecondYear" xlink:label="loc_us-gaapContractualObligationDueInSecondYear_d3a685" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_eadbcc" xlink:to="loc_us-gaapContractualObligationDueInSecondYear_d3a685" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInThirdYear" xlink:label="loc_us-gaapContractualObligationDueInThirdYear_19607d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_eadbcc" xlink:to="loc_us-gaapContractualObligationDueInThirdYear_19607d" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligationDueInFourthYear" xlink:label="loc_us-gaapContractualObligationDueInFourthYear_ac469b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_eadbcc" xlink:to="loc_us-gaapContractualObligationDueInFourthYear_ac469b" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractualObligation" xlink:label="loc_us-gaapContractualObligation_3289c2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_eadbcc" xlink:to="loc_us-gaapContractualObligation_3289c2" order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="000063 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_9ea020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_cd116e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_9ea020" xlink:to="loc_us-gaapStatementTable_cd116e" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_a59721" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_cd116e" xlink:to="loc_us-gaapStatementLineItems_a59721" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_56e9fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_cd116e" xlink:to="loc_us-gaapPlanNameAxis_56e9fa" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_4e7d87" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_56e9fa" xlink:to="loc_us-gaapPlanNameDomain_4e7d87" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis_6fbc74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_cd116e" xlink:to="loc_srtTitleOfIndividualAxis_6fbc74" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_8b9b85" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis_6fbc74" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_8b9b85" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExecutiveAgreementsWithHaldenSShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithHaldenSShaneMember_60e457" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_4e7d87" xlink:to="loc_tomzExecutiveAgreementsWithHaldenSShaneMember_60e457" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithElissaJShaneMember_388ad6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_4e7d87" xlink:to="loc_tomzExecutiveAgreementsWithElissaJShaneMember_388ad6" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_BoardOfMembersMember" xlink:label="loc_tomzBoardOfMembersMember_d1d1a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_8b9b85" xlink:to="loc_tomzBoardOfMembersMember_d1d1a2" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommitteeChairpersonMember" xlink:label="loc_tomzCommitteeChairpersonMember_b198b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_8b9b85" xlink:to="loc_tomzCommitteeChairpersonMember_b198b5" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_cff8a3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_cff8a3" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermOfAgreement" xlink:label="loc_tomzTermOfAgreement_cf79b8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_tomzTermOfAgreement_cf79b8" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalariesAndWages" xlink:label="loc_us-gaapSalariesAndWages_cd2df0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapSalariesAndWages_cd2df0" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightOutstanding" xlink:label="loc_us-gaapClassOfWarrantOrRightOutstanding_b0df44" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapClassOfWarrantOrRightOutstanding_b0df44" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_cdab14" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_cdab14" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentForManagementFee" xlink:label="loc_us-gaapPaymentForManagementFee_5d984a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapPaymentForManagementFee_5d984a" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_c30aa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_c30aa4" order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices_e60b02" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a59721" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices_e60b02" order="8" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="000064 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent_683378" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent_683378" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:label="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent_663d94" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent_663d94" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DirectorFeesCurrentAndNoncurrent" xlink:label="loc_tomzDirectorFeesCurrentAndNoncurrent_f716e7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_tomzDirectorFeesCurrentAndNoncurrent_f716e7" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SalesTaxPayable" xlink:label="loc_tomzSalesTaxPayable_2375a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_tomzSalesTaxPayable_2375a2" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="loc_us-gaapExtendedProductWarrantyAccrualCurrent_4cc736" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_us-gaapExtendedProductWarrantyAccrualCurrent_4cc736" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent_afec16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent_afec16" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_564e16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_7e4f8a" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_564e16" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="000065 - Disclosure - ACCRUED WARRANTY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_6ada3b" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="loc_us-gaapExtendedProductWarrantyAccrual_4e8c05" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_6ada3b" xlink:to="loc_us-gaapExtendedProductWarrantyAccrual_4e8c05" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:label="loc_us-gaapProductWarrantyAccrualPeriodIncreaseDecrease_932b5f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_6ada3b" xlink:to="loc_us-gaapProductWarrantyAccrualPeriodIncreaseDecrease_932b5f" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SettlementOfWarrantyClaims" xlink:label="loc_tomzSettlementOfWarrantyClaims_92ed8d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_6ada3b" xlink:to="loc_tomzSettlementOfWarrantyClaims_92ed8d" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="loc_us-gaapExtendedProductWarrantyAccrual_738bf4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_6ada3b" xlink:to="loc_us-gaapExtendedProductWarrantyAccrual_738bf4" order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails" xlink:title="000066 - Disclosure - INCOME TAXES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_cd4e27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_cd4e27" xlink:to="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentFederalTaxExpenseBenefit_72a8c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" xlink:to="loc_us-gaapCurrentFederalTaxExpenseBenefit_72a8c6" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit_a7a7ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" xlink:to="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit_a7a7ab" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentForeignTaxExpenseBenefit_3c6164" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" xlink:to="loc_us-gaapCurrentForeignTaxExpenseBenefit_3c6164" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentIncomeTaxExpenseBenefit_46fae9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" xlink:to="loc_us-gaapCurrentIncomeTaxExpenseBenefit_46fae9" order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_b5779b" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit_28ba93" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" xlink:to="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit_28ba93" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit_4d50c8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" xlink:to="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit_4d50c8" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit_c87e30" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" xlink:to="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit_c87e30" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefit_ecc747" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefit_ecc747" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ProvisionForIncomeTaxes" xlink:label="loc_tomzProvisionForIncomeTaxes_c1ad11" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_f68e81" xlink:to="loc_tomzProvisionForIncomeTaxes_c1ad11" order="11" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails1" xlink:title="000067 - Disclosure - INCOME TAXES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_fa478e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7896a7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_fa478e" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7896a7" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_0a4e7d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_fa478e" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_0a4e7d" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_ecfea8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_fa478e" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_ecfea8" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails2" xlink:title="000068 - Disclosure - INCOME TAXES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_3a30e5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IncomeLossBeforeIncomeTax" xlink:label="loc_tomzIncomeLossBeforeIncomeTax_fdf8c5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_3a30e5" xlink:to="loc_tomzIncomeLossBeforeIncomeTax_fdf8c5" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaapEffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_99a2bc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_3a30e5" xlink:to="loc_us-gaapEffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_99a2bc" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaapIncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_64a9b7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_3a30e5" xlink:to="loc_us-gaapIncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_64a9b7" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:label="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_3a30e5" xlink:to="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaapIncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d65784" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" xlink:to="loc_us-gaapIncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d65784" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="loc_us-gaapIncomeTaxReconciliationPriorYearIncomeTaxes_f65aaa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" xlink:to="loc_us-gaapIncomeTaxReconciliationPriorYearIncomeTaxes_f65aaa" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_fb6b75" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" xlink:to="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_fb6b75" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseAmortization_8b20c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" xlink:to="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseAmortization_8b20c3" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="loc_us-gaapIncomeTaxReconciliationOtherReconcilingItems_5342d7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" xlink:to="loc_us-gaapIncomeTaxReconciliationOtherReconcilingItems_5342d7" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit_bfec30" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_4baaa0" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit_bfec30" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails3" xlink:title="000069 - Disclosure - INCOME TAXES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_387f4a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:label="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_387f4a" xlink:to="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_InventoryReserve" xlink:label="loc_tomzInventoryReserve_d38bda" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_tomzInventoryReserve_d38bda" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_1f4d2f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_1f4d2f" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetsAccruedVacation" xlink:label="loc_tomzDeferredTaxAssetsAccruedVacation_d55455" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_tomzDeferredTaxAssetsAccruedVacation_d55455" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:label="loc_tomzDeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_75f482" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_tomzDeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_75f482" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="loc_us-gaapDeferredTaxAssetsGoodwillAndIntangibleAssets_fe6dfc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapDeferredTaxAssetsGoodwillAndIntangibleAssets_fe6dfc" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts" xlink:label="loc_us-gaapDeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts_1d4a7f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapDeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts_1d4a7f" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" xlink:label="loc_tomzDeferredTaxAssetOperatingLeaseRightofuseLiabilities_4b49cb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_tomzDeferredTaxAssetOperatingLeaseRightofuseLiabilities_4b49cb" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="loc_us-gaapDeferredTaxAssetsOperatingLossCarryforwards_d87016" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapDeferredTaxAssetsOperatingLossCarryforwards_d87016" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaapDeferredTaxAssetsValuationAllowance_6911e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapDeferredTaxAssetsValuationAllowance_6911e2" order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="loc_us-gaapDeferredTaxAssetsNet_da28ba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapDeferredTaxAssetsNet_da28ba" order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:label="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_93db46" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_3b1d73" xlink:to="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_93db46" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" xlink:label="loc_tomzDeferredTaxLiabilityOperatingLeaseRightofuseAssets_021c56" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_93db46" xlink:to="loc_tomzDeferredTaxLiabilityOperatingLeaseRightofuseAssets_021c56" order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="loc_us-gaapDeferredTaxLiabilitiesPropertyPlantAndEquipment_5ab09d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_93db46" xlink:to="loc_us-gaapDeferredTaxLiabilitiesPropertyPlantAndEquipment_5ab09d" order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="loc_us-gaapDeferredTaxLiabilities_6187b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_93db46" xlink:to="loc_us-gaapDeferredTaxLiabilities_6187b5" order="15" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="loc_us-gaapDeferredTaxAssetsLiabilitiesNet_c675b9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_93db46" xlink:to="loc_us-gaapDeferredTaxAssetsLiabilitiesNet_c675b9" order="16" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="000070 - Disclosure - INCOME TAXES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_2c1823" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="loc_us-gaapOperatingLossCarryforwards_a3e7dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_2c1823" xlink:to="loc_us-gaapOperatingLossCarryforwards_a3e7dd" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StateNetOperatingLossCarryforwards" xlink:label="loc_tomzStateNetOperatingLossCarryforwards_d46168" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_2c1823" xlink:to="loc_tomzStateNetOperatingLossCarryforwards_d46168" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_NetDeferredTaxAssetsIncreasedValuationAllowance" xlink:label="loc_tomzNetDeferredTaxAssetsIncreasedValuationAllowance_c630f4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_2c1823" xlink:to="loc_tomzNetDeferredTaxAssetsIncreasedValuationAllowance_c630f4" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_NetDeferredTaxAssetsValuationAllowance" xlink:label="loc_tomzNetDeferredTaxAssetsValuationAllowance_1bc63b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_2c1823" xlink:to="loc_tomzNetDeferredTaxAssetsValuationAllowance_1bc63b" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="000071 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_83788f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_649443" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_83788f" xlink:to="loc_us-gaapStatementTable_649443" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_0fdf0b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_649443" xlink:to="loc_us-gaapStatementLineItems_0fdf0b" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_aacf19" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_649443" xlink:to="loc_srtMajorCustomersAxis_aacf19" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_0c2e05" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_aacf19" xlink:to="loc_srtNameOfMajorCustomerDomain_0c2e05" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OneCustomerMember" xlink:label="loc_tomzOneCustomerMember_03d7a5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_0c2e05" xlink:to="loc_tomzOneCustomerMember_03d7a5" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TwoCustomerMember" xlink:label="loc_tomzTwoCustomerMember_dd9e06" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_0c2e05" xlink:to="loc_tomzTwoCustomerMember_dd9e06" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ThreeCustomerMember" xlink:label="loc_tomzThreeCustomerMember_5cd6ea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_0c2e05" xlink:to="loc_tomzThreeCustomerMember_5cd6ea" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1_ada65b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_0fdf0b" xlink:to="loc_us-gaapConcentrationRiskPercentage1_ada65b" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="000072 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_6f6626" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_89bea2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_6f6626" xlink:to="loc_us-gaapStatementTable_89bea2" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_bf3503" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_89bea2" xlink:to="loc_us-gaapStatementLineItems_bf3503" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_74baa8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_89bea2" xlink:to="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_74baa8" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain_b61b77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_74baa8" xlink:to="loc_us-gaapRelatedPartyDomain_b61b77" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis_e65785" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_89bea2" xlink:to="loc_us-gaapSubsequentEventTypeAxis_e65785" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_8fe996" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeAxis_e65785" xlink:to="loc_us-gaapSubsequentEventTypeDomain_8fe996" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="loc_srtChiefExecutiveOfficerMember_7e6065" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_b61b77" xlink:to="loc_srtChiefExecutiveOfficerMember_7e6065" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember_b5d375" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeDomain_8fe996" xlink:to="loc_us-gaapSubsequentEventMember_b5d375" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefOperatingOfficerMember" xlink:label="loc_srtChiefOperatingOfficerMember_da50eb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_b61b77" xlink:to="loc_srtChiefOperatingOfficerMember_da50eb" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefFinancialOfficerMember" xlink:label="loc_srtChiefFinancialOfficerMember_de3c7e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_b61b77" xlink:to="loc_srtChiefFinancialOfficerMember_de3c7e" order="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_BoardOfDirectorsChairmanMember" xlink:label="loc_srtBoardOfDirectorsChairmanMember_3eb9b8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_b61b77" xlink:to="loc_srtBoardOfDirectorsChairmanMember_3eb9b8" order="35" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:label="loc_us-gaapClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_7939a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_us-gaapClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_7939a2" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaapStockRepurchasedDuringPeriodShares_887f09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_us-gaapStockRepurchasedDuringPeriodShares_887f09" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionValued" xlink:label="loc_tomzStockOptionValued_b3b837" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_tomzStockOptionValued_b3b837" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionTerm" xlink:label="loc_tomzStockOptionTerm_05e822" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_tomzStockOptionTerm_05e822" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Volatility" xlink:label="loc_tomzVolatility_795efa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_tomzVolatility_795efa" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExpectedDividendYield" xlink:label="loc_tomzExpectedDividendYield_bf0e1f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_tomzExpectedDividendYield_bf0e1f" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RiskFreeInterestRate" xlink:label="loc_tomzRiskFreeInterestRate_1738f9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_tomzRiskFreeInterestRate_1738f9" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GrantDateFairValuePerShareOfCommonStock" xlink:label="loc_tomzGrantDateFairValuePerShareOfCommonStock_0c1e10" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_tomzGrantDateFairValuePerShareOfCommonStock_0c1e10" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConversionOfStockSharesIssued1" xlink:label="loc_us-gaapConversionOfStockSharesIssued1_4a2821" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_us-gaapConversionOfStockSharesIssued1_4a2821" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConversionOfStockAmountIssued1" xlink:label="loc_us-gaapConversionOfStockAmountIssued1_8d2d80" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_us-gaapConversionOfStockAmountIssued1_8d2d80" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1_3f8d27" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bf3503" xlink:to="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1_3f8d27" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>tomz-20221231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 03/16/2023-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2023 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20221231.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20221231.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20221231.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:href="tomz-20221231.xsd#CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20221231.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20221231.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20221231.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20221231.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20221231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20221231.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCosts" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20221231.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20221231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20221231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20221231.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20221231.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20221231.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20221231.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20221231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20221231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20221231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20221231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityTables" xlink:href="tomz-20221231.xsd#ShareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsTables" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20221231.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesTables" xlink:href="tomz-20221231.xsd#IncomeTaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20221231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20221231.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20221231.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20221231.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20221231.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20221231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20221231.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20221231.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20221231.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20221231.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20221231.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:href="tomz-20221231.xsd#CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20221231.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20221231.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20221231.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20221231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20221231.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails1" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails2" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails3" xlink:href="tomz-20221231.xsd#IncomeTaxesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20221231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20221231.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20221231.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" arcroleURI="http://xbrl.org/int/dim/arcrole/all" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#notAll" arcroleURI="http://xbrl.org/int/dim/arcrole/notAll" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="loc_deiCover" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:title="000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesAPreferredStockMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesBPreferredStockMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashEquivalentsAtCarryingValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCashEquivalentsAtCarryingValue" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="loc_us-gaapOtherReceivablesNetCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherReceivablesNetCurrent" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapInventoryNet" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDepositsAssetsCurrent" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPrepaidExpenseCurrent" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssetsCurrent" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsAbstract" xlink:label="loc_us-gaapOtherAssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssetsAbstract" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:label="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaapOtherAssetsNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssetsNoncurrent" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssets" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssets" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccountsPayableCurrent" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerDepositsCurrent" xlink:label="loc_us-gaapCustomerDepositsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCustomerDepositsCurrent" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesCurrent" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesNoncurrent" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilities" order="26" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquityAbstract" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockValue" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockValue" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAdditionalPaidInCapital" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity" order="33" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:title="000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesAPreferredStockMember" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesBPreferredStockMember" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquityAbstract" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesAuthorized" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesIssued" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesOutstanding" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PreferredStockParOrStatedValue" xlink:label="loc_tomzPreferredStockParOrStatedValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzPreferredStockParOrStatedValue" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesAuthorized" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesIssued" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesOutstanding" order="10" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:title="000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:title="000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="loc_tomzSeriesAPreferredStocksMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_tomzSeriesAPreferredStocksMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapCommonStockMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapRetainedEarningsMember" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesIssued" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityCompensation" xlink:label="loc_tomzEquityCompensation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzEquityCompensation" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuedForServicesProvidedShares" xlink:label="loc_tomzCommonStockIssuedForServicesProvidedShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockIssuedForServicesProvidedShares" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuedForServicesProvidedAmount" xlink:label="loc_tomzCommonStockIssuedForServicesProvidedAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockIssuedForServicesProvidedAmount" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueNewIssues" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLoss" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsAndOptionsExercisedShares" xlink:label="loc_tomzWarrantsAndOptionsExercisedShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWarrantsAndOptionsExercisedShares" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsAndOptionsExercisedAmount" xlink:label="loc_tomzWarrantsAndOptionsExercisedAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWarrantsAndOptionsExercisedAmount" order="10" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:title="000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/DescriptionOfBusiness" xlink:title="000007 - Disclosure - DESCRIPTION OF BUSINESS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/INVENTORIES" xlink:title="000009 - Disclosure - INVENTORIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDeposits" xlink:title="000010 - Disclosure - VENDOR DEPOSITS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipment" xlink:title="000011 - Disclosure - PROPERTY AND EQUIPMENT" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssets" xlink:title="000012 - Disclosure - INTANGIBLE ASSETS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LEASES" xlink:title="000013 - Disclosure - LEASES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:title="000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContract" xlink:title="000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquity" xlink:title="000016 - Disclosure - SHAREHOLDERS EQUITY" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingencies" xlink:title="000017 - Disclosure - COMMITMENTS AND CONTINGENCIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreements" xlink:title="000018 - Disclosure - CONTRACTS AND AGREEMENTS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:title="000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarranty" xlink:title="000020 - Disclosure - ACCRUED WARRANTY" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="000021 - Disclosure - INCOME TAXES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="000022 - Disclosure - CUSTOMER CONCENTRATION" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="000023 - Disclosure - SUBSEQUENT EVENTS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="000024 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="000026 - Disclosure - INVENTORIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="000027 - Disclosure - PROPERTY AND EQUIPMENT (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="000028 - Disclosure - INTANGIBLE ASSETS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="000029 - Disclosure - LEASES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:title="000030 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityTables" xlink:title="000031 - Disclosure - SHAREHOLDERS EQUITY (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsTables" xlink:title="000032 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="000033 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="000034 - Disclosure - ACCRUED WARRANTY (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesTables" xlink:title="000035 - Disclosure - INCOME TAXES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="000036 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srtStatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtStatementGeographicalAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srtSegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtStatementGeographicalAxis" xlink:to="loc_srtSegmentGeographicalDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srtSegmentGeographicalDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtStatementGeographicalAxis" xlink:to="loc_srtSegmentGeographicalDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SteraMistPRoductMember" xlink:label="loc_tomzSteraMistPRoductMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzSteraMistPRoductMember" order="41" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ServiceAndTrainingMember" xlink:label="loc_tomzServiceAndTrainingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzServiceAndTrainingMember" order="42" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_UnitedStatesMember" xlink:label="loc_tomzUnitedStatesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzUnitedStatesMember" order="43" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_InternationalMember" xlink:label="loc_tomzInternationalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzInternationalMember" order="44" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GeographicRegionMember" xlink:label="loc_tomzGeographicRegionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtSegmentGeographicalDomain" xlink:to="loc_tomzGeographicRegionMember" order="45" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRevenues" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ChangesInRevenue" xlink:label="loc_tomzChangesInRevenue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzChangesInRevenue" order="2" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtMajorCustomersAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="loc_us-gaapExtinguishmentOfDebtAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapExtinguishmentOfDebtAxis" order="60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain" order="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain_10" order="80" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapIncomeStatementLocationAxis" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapIncomeStatementLocationAxis" xlink:to="loc_us-gaapIncomeStatementLocationDomain" order="90" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapIncomeStatementLocationAxis" xlink:to="loc_us-gaapIncomeStatementLocationDomain_10" order="100" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain" order="110" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_10" order="120" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="110" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="120" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="130" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="130" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="140" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="150" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" order="150" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" xlink:to="loc_us-gaapRelatedPartyDomain" order="160" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" xlink:to="loc_us-gaapRelatedPartyDomain_10" order="170" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SoftwareDevelopmentMember" xlink:label="loc_us-gaapSoftwareDevelopmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_us-gaapSoftwareDevelopmentMember" order="151" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TwoVendorsMember" xlink:label="loc_tomzTwoVendorsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzTwoVendorsMember" order="152" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableMember" xlink:label="loc_us-gaapAccountsPayableMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapExtinguishmentOfDebtTypeDomain" xlink:to="loc_us-gaapAccountsPayableMember" order="153" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfSalesMember" xlink:label="loc_us-gaapCostOfSalesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeStatementLocationDomain" xlink:to="loc_us-gaapCostOfSalesMember" order="154" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain" xlink:to="loc_tomzWarrantsMember" order="155" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockOptionsMember" order="156" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="loc_tomzEquityIncentivePlanOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzEquityIncentivePlanOneMember" order="157" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_DirectorMember" xlink:label="loc_srtDirectorMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapRelatedPartyDomain" xlink:to="loc_srtDirectorMember" order="158" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryValuationReserves" xlink:label="loc_us-gaapInventoryValuationReserves" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapInventoryValuationReserves" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaapAdvertisingExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAdvertisingExpense" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ResearchAndDevelopmentsExpense" xlink:label="loc_tomzResearchAndDevelopmentsExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzResearchAndDevelopmentsExpense" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockIssuableUponConversionOfOutstandingShares" xlink:label="loc_tomzCommonStockIssuableUponConversionOfOutstandingShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockIssuableUponConversionOfOutstandingShares" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts" xlink:label="loc_tomzAmortizationOfCapitalizedSoftwareDevelopmentCosts" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzAmortizationOfCapitalizedSoftwareDevelopmentCosts" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ConcentrationRiskPercentage" xlink:label="loc_tomzConcentrationRiskPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzConcentrationRiskPercentage" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesAuthorized" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesAuthorized" order="13" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockSharesIssuedVested" xlink:label="loc_tomzCommonStockSharesIssuedVested" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockSharesIssuedVested" order="14" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="000040 - Disclosure - INVENTORIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="000041 - Disclosure - VENDOR DEPOSITS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="000042 - Disclosure - PROPERTY AND EQUIPMENT (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="000043 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="000044 - Disclosure - INTANGIBLE ASSETS (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="000045 - Disclosure - INTANGIBLE ASSETS (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="000046 - Disclosure - INTANGIBLE ASSETS (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="000047 - Disclosure - INTANGIBLE ASSETS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="000048 - Disclosure - LEASES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="000049 - Disclosure - LEASES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="000050 - Disclosure - LEASES (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="000051 - Disclosure - LEASES (Details 3)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="000052 - Disclosure - LEASES (Details 4)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="000053 - Disclosure - LEASES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:title="000054 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:title="000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="000056 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="000057 - Disclosure - SHAREHOLDERS EQUITY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockWarrantMember" xlink:label="loc_tomzStockWarrantMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockWarrantMember" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OutstandingBeginningOfPeriod" xlink:label="loc_tomzOutstandingBeginningOfPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzOutstandingBeginningOfPeriod" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OutstandingEndOfPeriod" xlink:label="loc_tomzOutstandingEndOfPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzOutstandingEndOfPeriod" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceAbstract" xlink:label="loc_tomzWeightedAverageExercisePriceAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWeightedAverageExercisePriceAbstract" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" xlink:label="loc_tomzWeightedAverageExercisePriceOutstandingBeginningBalance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWeightedAverageExercisePriceOutstandingBeginningBalance" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceGranted" xlink:label="loc_tomzWeightedAverageExercisePriceGranted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWeightedAverageExercisePriceGranted" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceExercised" xlink:label="loc_tomzWeightedAverageExercisePriceExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWeightedAverageExercisePriceExercised" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceExpired" xlink:label="loc_tomzWeightedAverageExercisePriceExpired" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWeightedAverageExercisePriceExpired" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WeightedAverageExercisePriceOutstandingEndingBalance" xlink:label="loc_tomzWeightedAverageExercisePriceOutstandingEndingBalance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWeightedAverageExercisePriceOutstandingEndingBalance" order="11" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="000058 - Disclosure - SHAREHOLDERS EQUITY (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeOneMember" xlink:label="loc_tomzRangeOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeOneMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeSevenMember" xlink:label="loc_tomzRangeSevenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeSevenMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeThreeMember" xlink:label="loc_tomzRangeThreeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeThreeMember" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeFourMember" xlink:label="loc_tomzRangeFourMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeFourMember" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeFiveMember" xlink:label="loc_tomzRangeFiveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeFiveMember" order="25" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeTwoMember" xlink:label="loc_tomzRangeTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeTwoMember" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeEightMember" xlink:label="loc_tomzRangeEightMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeEightMember" order="27" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RangeNineMember" xlink:label="loc_tomzRangeNineMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeNineMember" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_tomzSharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzSharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices" order="8" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="000059 - Disclosure - SHAREHOLDERS EQUITY (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain" xlink:to="loc_tomzWarrantsMember" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" order="11" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="000060 - Disclosure - SHAREHOLDERS EQUITY (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapAwardTypeAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsOneMember" xlink:label="loc_tomzWarrantsOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsOneMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTwoMember" xlink:label="loc_tomzWarrantsTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsTwoMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsThreeMember" xlink:label="loc_tomzWarrantsThreeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsThreeMember" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsFourMember" xlink:label="loc_tomzWarrantsFourMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsFourMember" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsFiveMember" xlink:label="loc_tomzWarrantsFiveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsFiveMember" order="25" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsSevenMember" xlink:label="loc_tomzWarrantsSevenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsSevenMember" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsEightMember" xlink:label="loc_tomzWarrantsEightMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsEightMember" order="27" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTenMember" xlink:label="loc_tomzWarrantsTenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsTenMember" order="28" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsElevenMember" xlink:label="loc_tomzWarrantsElevenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsElevenMember" order="29" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsTwelveMember" xlink:label="loc_tomzWarrantsTwelveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsTwelveMember" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="4" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="000061 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtTitleOfIndividualAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapAwardDateAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardDateAxis" xlink:to="loc_us-gaapAwardDateDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapAwardDateAxis" xlink:to="loc_us-gaapAwardDateDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="70" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="loc_srtRangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtRangeAxis" order="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="loc_srtRangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtRangeAxis" xlink:to="loc_srtRangeMember" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="loc_srtRangeMember_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtRangeAxis" xlink:to="loc_srtRangeMember_10" order="90" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesAPreferredStockMember" order="71" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesBPreferredStockMember" order="72" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PrivatePlacementsMember" xlink:label="loc_tomzPrivatePlacementsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_tomzPrivatePlacementsMember" order="73" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_PlacementAgentMember" xlink:label="loc_tomzPlacementAgentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_tomzPlacementAgentMember" order="74" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwentyTwoMember" xlink:label="loc_tomzJanuaryTwentyTwentyTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzJanuaryTwentyTwentyTwoMember" order="75" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwentyOneMember" xlink:label="loc_tomzJanuaryTwentyTwentyOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzJanuaryTwentyTwentyOneMember" order="76" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ChiefOperatingOfficersMember" xlink:label="loc_tomzChiefOperatingOfficersMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_tomzChiefOperatingOfficersMember" order="77" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockOptionsMember" order="78" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_JanuaryTwentyTwoMember" xlink:label="loc_tomzJanuaryTwentyTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzJanuaryTwentyTwoMember" order="79" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockOptionMember" xlink:label="loc_us-gaapStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapStockOptionMember" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="loc_srtMinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtRangeMember" xlink:to="loc_srtMinimumMember" order="81" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="loc_srtMaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtRangeMember" xlink:to="loc_srtMaximumMember" order="82" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommonStockShareSold" xlink:label="loc_tomzCommonStockShareSold" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockShareSold" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IssuedWarrantsInConcurrentPrivatePlacement" xlink:label="loc_tomzIssuedWarrantsInConcurrentPrivatePlacement" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzIssuedWarrantsInConcurrentPrivatePlacement" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_IssuedWarrantsInConcurrentPlacementAgent" xlink:label="loc_tomzIssuedWarrantsInConcurrentPlacementAgent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzIssuedWarrantsInConcurrentPlacementAgent" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermsOfOutstandingWarrantsToPurchase" xlink:label="loc_tomzTermsOfOutstandingWarrantsToPurchase" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzTermsOfOutstandingWarrantsToPurchase" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GrantFairValueOfPerShare" xlink:label="loc_tomzGrantFairValueOfPerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzGrantFairValueOfPerShare" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapProceedsFromIssuanceOfWarrants" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExercisePriceOfWarrant" xlink:label="loc_tomzExercisePriceOfWarrant" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzExercisePriceOfWarrant" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantAmendmentDescription" xlink:label="loc_tomzWarrantAmendmentDescription" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWarrantAmendmentDescription" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_AggregateCashConsideration" xlink:label="loc_tomzAggregateCashConsideration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzAggregateCashConsideration" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesAuthorized" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesIssued" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesOutstanding" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstanding" xlink:label="loc_us-gaapWarrantsAndRightsOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWarrantsAndRightsOutstanding" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockValue" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_FairValueOfStockOption" xlink:label="loc_tomzFairValueOfStockOption" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzFairValueOfStockOption" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensation" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" order="26" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:title="000062 - Disclosure - CONTRACTS AND AGREEMENTS (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="000063 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtTitleOfIndividualAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExecutiveAgreementsWithHaldenSShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithHaldenSShaneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzExecutiveAgreementsWithHaldenSShaneMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithElissaJShaneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzExecutiveAgreementsWithElissaJShaneMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_BoardOfMembersMember" xlink:label="loc_tomzBoardOfMembersMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_tomzBoardOfMembersMember" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_CommitteeChairpersonMember" xlink:label="loc_tomzCommitteeChairpersonMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_tomzCommitteeChairpersonMember" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TermOfAgreement" xlink:label="loc_tomzTermOfAgreement" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzTermOfAgreement" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalariesAndWages" xlink:label="loc_us-gaapSalariesAndWages" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSalariesAndWages" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightOutstanding" xlink:label="loc_us-gaapClassOfWarrantOrRightOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightOutstanding" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentForManagementFee" xlink:label="loc_us-gaapPaymentForManagementFee" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPaymentForManagementFee" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices" order="8" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="000064 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="000065 - Disclosure - ACCRUED WARRANTY (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails" xlink:title="000066 - Disclosure - INCOME TAXES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails1" xlink:title="000067 - Disclosure - INCOME TAXES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails2" xlink:title="000068 - Disclosure - INCOME TAXES (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails3" xlink:title="000069 - Disclosure - INCOME TAXES (Details 3)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="000070 - Disclosure - INCOME TAXES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="000071 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtMajorCustomersAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_OneCustomerMember" xlink:label="loc_tomzOneCustomerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzOneCustomerMember" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_TwoCustomerMember" xlink:label="loc_tomzTwoCustomerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzTwoCustomerMember" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ThreeCustomerMember" xlink:label="loc_tomzThreeCustomerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzThreeCustomerMember" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConcentrationRiskPercentage1" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="000072 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" xlink:to="loc_us-gaapRelatedPartyDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis" xlink:to="loc_us-gaapRelatedPartyDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapSubsequentEventTypeAxis" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapSubsequentEventTypeAxis" xlink:to="loc_us-gaapSubsequentEventTypeDomain" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapSubsequentEventTypeAxis" xlink:to="loc_us-gaapSubsequentEventTypeDomain_10" order="50" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="loc_srtChiefExecutiveOfficerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapRelatedPartyDomain" xlink:to="loc_srtChiefExecutiveOfficerMember" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSubsequentEventTypeDomain" xlink:to="loc_us-gaapSubsequentEventMember" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefOperatingOfficerMember" xlink:label="loc_srtChiefOperatingOfficerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapRelatedPartyDomain" xlink:to="loc_srtChiefOperatingOfficerMember" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ChiefFinancialOfficerMember" xlink:label="loc_srtChiefFinancialOfficerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapRelatedPartyDomain" xlink:to="loc_srtChiefFinancialOfficerMember" order="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_BoardOfDirectorsChairmanMember" xlink:label="loc_srtBoardOfDirectorsChairmanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapRelatedPartyDomain" xlink:to="loc_srtBoardOfDirectorsChairmanMember" order="35" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:label="loc_us-gaapClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaapStockRepurchasedDuringPeriodShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockRepurchasedDuringPeriodShares" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionValued" xlink:label="loc_tomzStockOptionValued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzStockOptionValued" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_StockOptionTerm" xlink:label="loc_tomzStockOptionTerm" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzStockOptionTerm" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_Volatility" xlink:label="loc_tomzVolatility" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzVolatility" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_ExpectedDividendYield" xlink:label="loc_tomzExpectedDividendYield" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzExpectedDividendYield" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_RiskFreeInterestRate" xlink:label="loc_tomzRiskFreeInterestRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzRiskFreeInterestRate" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20221231.xsd#tomz_GrantDateFairValuePerShareOfCommonStock" xlink:label="loc_tomzGrantDateFairValuePerShareOfCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzGrantDateFairValuePerShareOfCommonStock" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConversionOfStockSharesIssued1" xlink:label="loc_us-gaapConversionOfStockSharesIssued1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConversionOfStockSharesIssued1" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConversionOfStockAmountIssued1" xlink:label="loc_us-gaapConversionOfStockAmountIssued1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConversionOfStockAmountIssued1" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1" order="11" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>11
<FILENAME>tomz_10kimg5.jpg
<TEXT>
begin 644 tomz_10kimg5.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" "I ) # 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M[:H!\2>#20#_ *-<=1_MI7RU?:? R;H(@CXZKP#7U/\ MJ_\C#X-/_3O<?\
MH:5\VQJKA=QP,"@#*T.W,-QYC9$F_;^%=.F/M-P?4C^59UM:S-<S210NT4+*
MTCJI*IDX&3VR>*OK_KY_]X?RH B^QR!R8[HHI;.!4@L)NANW!Z8Q4NG7JZ?X
M@M[R[TJ34;2,,#$JD@MC@]",CZ&IY!>,CW4EA+:QS.S1(T;* ,Y"C/7&:F_O
M6.ETOW:G?7L.TYM4TV<W%AJDD3\9.Q6!P>,@@TW;J%M=27HNK-Y;H$R?:6V[
MOFSG QCD&J5JEQ(R1K9W7VLR9;]VQX].G]?PKJ]%T_4M4UJVM]*$D=^B%2=J
MX0 G+'=TZU1S&=;Z_P"(K2(Q6M_IL,>[=M29@,^O6G-JGB2^5+4/87(W%EB6
M5VY[D 'W-=CK&C>)M#M1,^M?:$A 9A%$NZ(9P#AE&1GN,X[XKB]C+.URMW-'
M,26+IA3D]>0>*S2@]4AZCTC\43.,6-DS=F)D./UJ?^PYK8QV\UU912$ *DDX
M4GMW]ZGAU!([2-)8+MXY/^6C3R O@#&QLX&"">,]<=JI3>5-J?VPR7)19=Z1
MR/YA50V0NXG)],U4>5[ []3#\0J8]+F5XMVUU!!/?.*YJTFL!E;W33*I_BBE
M\ME^G!!_$5U?B(B;39VZ;Y0V/JU<FD.>]4)ZDE[86:P)=:=>&XB;.^.1-LD)
M_P!KL0?4?I67-'B)OI6U;$VMRDX57"_>1QE6'<&J6H6_E>>B\JN<'VH)5UH,
M\.C_ (G=L?\ :_I7Z"_LZ^#]#M?!%KXN-OY^K7CRH)9.?(57*83TSCD]><=*
M_/SP]_R%[<_[5?<?[+_B+6KP:SX=NKV.72["&.6T@ ^>)F=B^3CH2104<5^V
MO_R'?!9_Z87/_H4=?-,+!<9R1@<5]+_ML#_B<^"O^N-U_P"A15\Q1-R/;%,#
MK_#+!O#GB_''[JU'_D=:RT -Q/\ 4?RK2\,LG_"->+2I.?+M>/\ MNM9<1S/
M.?\ :'\J0'8^%]3TW3M,EBN[][>9IL[53=E>/;ZT_P 2:K::E]E-MJ#W#1R@
MDLI7:OL,5R8ZU,M8^QCS\YZ#Q,G2]G96_$G69E+LMG&&/W6%X_'Z\UZ!\*_$
M&F:/XVFBU::"+^T(5B@N[@YC24,#@D_WAD GO7GPI?+612CJ&4]01Q6K5U8X
M%H?1_P 4-4TVR\*3M?7\%U?SLT=M#OC+ %2,!4.< 'DG(]*^:IYUM_*DEC,L
M2R*9$'5TR-P_$9%:,=K!"/W42K]!45PBLNW Q4<GNN(W+6Y[M\1/B5\/=<^%
M\NF:1J5O>W-RL0LK.*':]HP(R6X^7 !_ES7@P.[FF6]C#'ND6-0W;BK"AO('
MF* _M7/0HQHQ<8MN[OJ:3JN;U1D:TF_2W4?WE_G7*R6]SA?+5BO.=OZ5UVLD
MKI;D?WE_G7->;OD"R_< Z?WC788D*K+M"L 6[X]:9?HZPS\9 &*TXH$+B5=J
MXZ#'>JUPCBSGC;YF"YSZT$)ZF=X?XU6W_P!ZOL#]EN1H_B)KL8LHPDVGKFX#
MC<2KKA2O7N>:^4[./1%N=-?29[UYR3]H2YC550X_@*GD'GJ!CWKZ?_9?LHE^
M+5]J&[,LFER1D>@$D=261_ML_P#(8\$<X_<W?_H45?*[R3";8D)P<#=NP#7U
M1^VU_P A7P3Z^3=_^A15\FM)'YP$[[ %XW#K]*H#N/"I4>'/%BG>)Q#:"16
MP#]H'0@\U3AW":8XP-PZ_2K'A%A-X8\63JRLI2T7 /.?.7FJ2L=UYST?\N*
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
MO@Y7J.%QNZ<T$GGG[;#+_:W@M=PW"&Z)&><;H_\ "OD&X(9CBOJ_]M"POO\
MA./#6H>4?LDE@\*2=MZR$L/R9:^6?+D8<C- '2^&YKF?PC=Z>JQ""VO([MF+
M$.21Y8 '0CFG[<O<CU;^E96AVLADENE5BD7,FU20@R,$GH*Z![2YCF>2&,31
MR<XW!2#^/:@#%CDV%U9&W;L\"I1<*1]R3_OFKIL[ACS8-GV=3_6D^PS?\^3_
M /?2_P"- %3[0G3:_P#WR:7[1'Z/_P!\FK?V&3_GSD_\=_QIPT^3_GTE'X#_
M !H I_:(O]K_ +Y-)]HC]3_WR:OC39/^?67_ #^-.&ER9_X]9?R_^O0!F_:(
MASN./]TTJ2))(%7)8]!@UJ#2)",_993^'_UZEATV:)MRVDF?H/\ &@#,UT>7
MH1W8X917("=17=:SIU]>:8;:&V?<6!^;@ 5S7_"*:M_SS3_OL4 8DK>9)N6F
M8-=#_P (CJ_78@'^^*8WA75E&3$"/9J"BOX?'_$U4^U?>'[/OA?Q4WAO1]:U
M+5EC\.Q22W%C8*-SR.VY"['^$#YL#^7?XKT70+NWD-Q*NS;UST%??'[-5IJM
MK\(4?4'8V\UY*]FC?PQ\ X]BX<T >C^*?"'ASQMH;Z/XGTJ'4+-_F"R<,C8Q
MN5ARIYZ@UXU>_LA_#&Y=FMM0URR!/"Q7$;!?^^D-?15%!)\T>"/@#8^"OB9K
M.AM9W>K^#M6T$H]U>;#B?SES&2F"&  92 /KD54U/]DV)M5SH?C*6TTMGSY%
MQ;^8\8[@$$ _D*^HJ* /G+_AD[P\.GC'5O\ OU%_A2_\,HZ".GC#4S]8(C_2
MOHRB@#YU'[*>@C_F;]2_\!XO\*Q-;_9=OEG3_A&_%:,GE,7^WP@$OD;0-@Z$
M9R>V!P<\?4M% 'R->?LQ^*K7P[?74'B"UO-3@"O;VT<0"SC;EUW'&UL\#L<<
MXSQ2^&WP%N?&7AJXU36=8O=$N8KI[;[.]B V% R3NQW)'X5]C44 ?&/Q(^!M
M]X,BT9?#^JW>N76I7)MEMULU!!VY!X)]^M:5Y^S/XVCTNTFL=>TZ:\>$O=02
MKL6.3(PB,%.[@GDXY'OQ]<_Q+]?Z4^@#Y6TK]F#6I+9O[:\7V]O-\NU+:T\T
M?=YR6*]\C\,]\5H-^RQ-CY/'8!_VM+4_^U*^F:* /F4?LLWH_P"9\B_\%0_^
M.4R3]EO5-I\KQ]!GT;2AS_Y$KZ=HH ^8]!_9ANO[5CF\5>)X[JQC8,;>SC*F
D7'8D_=_6OI"QL;73=/@T^QMTM[6W01Q1(,*B@8 %7** /__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>12
<FILENAME>tomz_10kimg9.jpg
<TEXT>
begin 644 tomz_10kimg9.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" "M /P# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M$UO*NY65MW]VOG718&BA6.&3<LLF[<M>]>'M,NEMXXU^;Y:SE$TC+F-I8/\
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
MR2WV[FNX8/EC;=]W_9K2+!Q-?3;/1;[PA%IBV]U8ZE(K0RQR';'NW+NDD_\
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
M$OEMYW][;NJN:,8^\'+S2]TZ:6PCO-,FNK?4KF:3RF;RX_F\R)OO;=OWE_\
M'EK)_M.'4+JSL_+^P[)_.VWL?[B1E^ZK,W]Y=W_ J].L?A-<>&_!\/V?4)9]
M667SF99-L:_+N_=_W=O_ (]7!ZKIC:NUU_:%]Y=TS;E\Y=J[O][_ -EJC&I1
MC)J74UI5M?$-C=-I_P!DCN+F1EE@;Y8XV;<OG+_>9?FK'DU.3P]:QV<DC7&Z
M*1;699/]<J[E\Q?[OS?]];:H^%=7N)=4CM8_LUTMDNYO,61I9(_FW+M_BV_^
M@UO-86\FO6^K:;;_ &R1()E^S7,FZ.%=K;F;_97=]W^]_#7.X-2O$I5590F<
M_=?ZNW::18Y/,7=-]Y?E7YJCU"2QNK=9)I&59Y8U7=]Y6_S_  U1\0_N]/C6
M.&3RV7:S-\K-\J[JY=?.DAMX661E:7S%7=\M='O&=2$'N:5XNGQ1W5Q#'N:*
M7RV5MOWO\_W:HW%XJEFADVL(ED5MWW:A^;;<2+#%NE;:J[ON_P"[4<\;>9^[
MC7;&NW=_>_WJ/>%RQ.HTCQ[<64D-O?;;JU=?O?Q+796,^CZU"MUH]U'')]YH
M9%W+N_W6KQ]HI(F:W;;N5OF_V?FHBNKB"9;BWN)(9/X9%;;NH-;Q/8M5DD6S
M6'^S8+/4%DW+/&NU9%_NUS,]Y#)<?V;K6ESM'(NY9H(MVUJL>'_%]Q<V_P!G
MU2-;B/=MW;:Z3[#;W*^9I=QY;-_RPD^ZW^[1:Q7Q&"UY-'9R6\=O::I9JVW=
M-'\VW_:7_61_^/5H:5XCTO4-9A\.ZYI]GI/AU[R.Z75O(5KN".*/:L<+?=^9
MO_0JCO%;;)'<6:PWBK^ZDW;?F_WJP;[4_*C:/4-/BFD_O3+M;_[*@S5)0V/2
M/*M5NKJU;QE:7"KIK:I)<SLT>Z3^*W7^])\W\/\ M5BWWB_RO!3:A T4<,FZ
MU\LKMD\WYF5?]J/[K;O]FN#@\77EFK+;K')'_#')\RU5\1^(VU>VTVSM8_)M
MK1&9HU3:OFLWS-3<CDCA8\[E*.Y6O=UOIEO))>?OKV+_ %95MT:[OO-_O5TG
MAGPIJ7BC4]%\)Z=<B&_UI&V+.&58(U^9I/\ :W*K?*M<5/->7<T<RQSMY:+'
M'NW-M5:MQW6O1ZO:ZK8K>VMU:;?LTRLRM#M^[M:D=2I^1]*K^S5I\&G^3?>(
MK^\D7;N\F-8U^7^[NW-73>"_"G_"-S:AI-GK6L[E5?W=S<.W][_5_P#V*UR?
MA7]H[Q@MK_Q6'@/^VK6)=TE_9?N9MO\ >;^%O_':[BS^/7P;UCRX]0DO]-9O
MX;VQ\Q5_X$NZN*?M#T*3A%^\<'XH\0:AI'BCQ%9QZAJ4C3VT=BTDDOF?[3+)
MN7[OS-\M>:,YW?+<+&/[NRNUU[Q1I=YI>O6-G9[I+_5VNH+EONK J_*J_P"U
M]W_@-=!X,U[P;9^$;.WU;2Q<:@N_SY-F[)WG'/\ N[:ZH:(QJRO(]\U"-OLJ
MM_#YE&BZAY?A^SC\MOECVU<U!=VF_P![;(M8.@SQSZ+#)#,LD:M)'\O\+*S;
MEK"G\0IG0?VAN_A:H_ME5UIK+_LUT&)8DO/EIK7559/NU'MH TH[CYMU<?\
M$'P]_:^BM=1[5O+1?,BD;^[_ ':Z".3;\M7))%FM_)9=WR[:HD^*_&>YIK5M
MNW:LFY?[M=5\&X-N@ZLLR_*]Q_[36M+XH>#O[(NI+Z2/=9LS>7\W][^&JOP]
M6WTJSNK.%MT<NZ:-O[WR_-_P*N'%\WLSNPOQG26WBK5&O%L9&62.3='%&J_=
M;^&N3U?3;ZYN))+A8V;;]W=5[2FCD\<:3#(RK')<_-_N[6KLO&WA=M*UJWU2
MS5I-%O\ Y9/^G>3;]W_=:N?#59<MY'57A%2M$\/U/S&6'R;=8Y(U\GSK95AD
M7_:;;_%_Z%56SN5L9/+UB1K/4()&9)]LDBW'F?>9O[K?*M=UJ6AK?7D<.DVL
MDUY)\JP1KN\RN/UC2+B^D71[B^6S^S3MNDV^9M;[NUF7_=KTJ56,UH<%3#]6
M8?B!VD:&21O+5F:1VD:N0\WS+&6X9OFG?RT7^ZM=GJ>DKJ+?9[BX6W:%69FD
M95W?-M_BK!;P]8Q?ZS4(Y/\ 95]W_H-:7B8^S*JW-O%J%Q(LWRP0,J?]-&V_
M_%512YC72[J'<VYV5MK-]YOXJVETC3X_NV\LW_;*2IELX5_U>ES?\"C5:.<?
MLSG9)[=KQ9%5F7RMO_ MO_Q55UD=8X5\K[C;ONUUC+-MVKIZK_O2K566UNI-
MVV.!?^^FJ><KV9FZ9>75M=,S+^Y9MVVNPUSQ UOH.FS:7=*LWFMN_P"^?NM7
M*R6MU'_RT5?]V.J[6K2-^\D9JKF#E/5/#FN7&O6/EWECYS?=VK_%_N__ !-7
M)-,5F\S3Y%D:-O\ 43KNV_\  6KD_!FM6^AW"QWFY8=W^N7YE7_>KUIH-+UB
M%;C<NYE_=SPM\W_V53S!RG/VVH:/-MM]6TV.QD_Y[0Q+MK07P9_:LRKH\+7T
MDB[H_LR[MU0ZEI5Q K?;(?MEO_SVC7YE_P!Y:QX/[0TR3[5HMXWE[MS+NK.4
M?Y32,_YC8G^%_CA55H_"NJ-&WW6\AOFHT/P'XDTSQ1INH:MX'U#4+&VG62>V
M:+_7+_$OS5ZGX'_:&DB\O2_&UNTT:KM6['^L7_>_O?Y^:O<["_\ #OBFU^T:
M!JEM>_+NV(W[Q?\ >7[U'(5S'(ZYX7M?&?@N\TO3;B6QAO[9HU58_+DM_P#>
MC_\ 9:^4?$?P*^('AZX^T3:6FH6,2[I+FTDW;57^)E;:RU]A:KX>DD_U;-#,
MOW?X:\]^(5YXHT?P+JBMJ5S]CE@^SR+)^\_UGR_>;_>J4Y(B1\PQVRQ75U=+
M(S+.J_+_  KMJK;QZYM?=KQ;YSCY>@]*[+Q'XH;Q'JFFW6H6L'DVD$-JRPQ+
M#YT:_>W;?^^:](\+>(O!DJZO=!=-TF">_9X+18FQ'&(XU7\]N?QK:]C!R2W9
M[Q<MNT?_ +Y:N1\*^2VN7RV>UHUC9;K;]WS_ #FV_P# O+^]_P !KK)&63PZ
MLB_\\E:L?3;9;/<MO^[CD9I-JKM7<WWFK&F:5#:\O;4,D>YJDCEW+\U#5L9E
M62/Y:AVU:D;;55FH :JU87YO]ZJNZIH&VM\U &;X@T'3?$NCW&DZQ:K<6LJ[
M67=M;_@+5\Y^(=!O/ 'B1K>1F;2YVW1S?W5_O?\ Q5?44GS-NKG?%GAFU\4:
M#)I]PJK)]Z*3_GFU$HJ4>60XRE&7,?-=C>76D>+M/U2\F\ZUBEW2;57[O][_
M ,>KV;6-5M;/X>ZI:M>,S7,JM!"S;MJ[E;Y?]G^*O%Y+6XT?5)O#NL1^6T;;
M8I&_A_V:[J2/5K?P7-X-U*U9KYO+:Q96W;HFVLOS+_LUR^SC$[?:2D=7X(2S
MOO ]Q'X=D6U\57:-(S32+YUS;+][R/[J_=KBHOAE>:E9ZEXB7=I\-MNW1JOS
M7++][:K?=_VJ\SG@U#P_=6>L:7)<V-YIMXK-(NY6AW+M_P"^6VK7T=X?^(D?
MCKP+K'VB../7K*SD6>#[L-PNW_61M_#N_B7[RTG2Y+2B;0Q'[MT[;G@.FSV\
M%]_Q-+>!K==NV=5W21M_%YG][_::NDNM*W1[K?;MD7=&RJNUJP?#EGX?N;'7
M&OII+&^B6/R%W>9YGS2?=_V?N[MU.T77O[,;[/<*TVF[OFC_ (K?_:7_ .)K
M6:O\)RQER_$4[RVO(&;S(_,7^]67,OF?>CVUZ5>6,<]NMU9R+<6\R[DDC_BK
ME;JUVR;?+KGYC9HY=K:.H_LW]WYJVI;:-O\ 9;_9JG)!)'_#6G,9F7+9JW\-
M9=SI[+6\RLU0R+N^]51D3RG._P"K:M+2M:U#1IO,T^XVQ[OFA;_5M_\ $TZ6
MV5OX:HR0-'6G,3RGK6@^.M/U+R[>X_T.Z_YYR-][_=;^*MZ?1;/4&\ZWD^QW
M7_/2/[K?[RUX+][Y6KJ-!\7ZIH[+'(S7UJO\,C?O%_W6H).LU72IK;Y=6L]L
M>[Y;F%=T;?\ Q-48/[0T%EO+.^E^5MR+#)M96_WOX?\ T*O0-!\1Z7KUGNMY
MEDW?ZR.1?F7_ 'EJKJ?@RWG9KK19OLLS?,T+?-&W_P 35<QG)2Z&UX5_:,\1
M:>JV?B2UCUVS7Y6CF;R9U7_9D^ZW_ O^^J[GXI>)M#U?X4^'?%&DK.L-YJ<+
M>0Z_O%\MF:167[NY=M?.6I:=Y%U]EUBU:QF_A;;\K?[K4[3[Q=/:/3]6O+VZ
MTF/S)(H()]JK,R_>7_V:M!V1O-KWA?5_B])KVO:?''H,\\TS6R[H]RK&WE[M
MO\3,J[O]IJ]M\"?"[0M2^'^C:I>:+-]HOH3=,%/ #LS*/^^2M?,%M+I?G7G]
MI2-'MMF\C;'NW2?PK4,'C2ZB@2.'35V*,#_6?_%5+U)=-2W/N*+]YX5A9MO^
MH5JAMO\ 4K4EC\W@^US_ ,^R_P#H--MO^/..L:9<B:/[M$DE"U')6QF0S257
M:II/NU7:I*'*U.5MM5V-"FJ)-!9-U.7]Y&U4UJQ"?O4 >:_%;PC9ZQI:Z@K+
M#?(VW=_ST7_[&L.UL]<M='OKBSU;;J5E;1K%(RJS-Y>W<K?Q1_+N^;_9JS\2
M=6OO^$R\-Z?%,8H9;D;MON,UQ7B#SM ^(UCIMG=W!M96\LJTAW XQNW>M0ES
M,V^&)O:?*VKZE-)]E7[1'9M(UM,JM#))M9H]V[YF7=_Z%7F^O7-K)'');S7]
MG-Y;33Z='N9H6^[M9ONJJ[OO?Q*RUZWXTL;;1=6GDTWS($GL4FC3S"?(=T1R
MRG_>9C^->/Z_,VKZ98Z](J0WBKY,S(O^O!8\GTZ5:B2Y&!ILOE37VU=N[R_X
MOO?+4E]+Y'EWT<BKM_UBM_%6 ]ZUO!=O%&JEIE7Z#:M<WJ6K7UQ=O$\V%BW*
MN/2JY23UOPOXJ6V5I+?=<6,C?O[3^*-O[R_[5=Y<V=GJMBMYI\BS0R?=9:^8
M['4KO3=06ZMY/G;[V>]>S:/K%UH\MG=6^&AOIEBFMV^X?<>AK"M2^TC>G.VC
M+5]I\ELS;5W5ER*S?P_-7J.IV4$B;]N&QG(KB-0LX8V9EZUR1D=+B<[+!_$U
M56B5FK6:-:JR*N_&VM.8S,^2V_[ZJO+:JW^]6H>*CDC4G-5S$G.RVNUJK[6C
MKHC$K+S_ 'JSIH5%5S$M$44\D2V]Q;S20S1,RK)&VUEKT#P_\2IH-MOX@C\R
M/_G[A7_T)?\ XFO/(OOM#_"XYJ&.1JHS/I..72]>TU5;R+ZSE^[_ !+7F.O6
M>@Z5K&I:?':RS,L:_9FDE_X]Y/XO]Y=M<AI^L:EX?1M0TNZ:%B?WD76.3ZK6
MIJ6K2:E='4)K>(2:AMR,9$?W?N_E6D29%*"SM]0F:WCDG_M:2=8[:%=ODR*W
KWMS5TP\#^*L?\N$?^SN_^QK*\!VZW/CW34D8X5O.^K!:]]\M/[M4V"/_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>13
<FILENAME>tomz_10kimg8.jpg
<TEXT>
begin 644 tomz_10kimg8.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" #^ , # 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#UGX<^(+K6
M;:^M=0<7$MHD.TRJ"<8*L<]3D@'GUKK9[E8VQ]EA/T!']:\B^&%^MOXWFLLX
M-Y:O@>I4@_T_6O4;Y\M]VN#5,[="3[?"!\UIC_=D(_F*/MUKCYH9E^C*?\*S
M&<5&7%5S,7*BY>R:==1*LK. K9P\6?Y&J\.O>'M-003:I!;J.SJRC.?I]*I7
M$G[H]:\N\6RDR.HJE-@V^7E/:%\0:!<J#;ZW9/G_ *; ?SJ1;FV?F.ZAD'JD
MJG^M?-5K(7MAGG%782,<'%5SM&5CZ.C8-]TAOH<U=C!QBOG"&XN(\^7<RK_N
MN17I7AGQM'8>&X;6:SN[ZYB+[GW<8W9')R> ::G<&B]XC_<>(K*Y)VK&X=F/
M0 ,"3506PMO&>O8FBEBN;.]V-&V1G.[;]>E86O\ BZ'5)B9((K=-I7:&+D@_
ME61>^,;>299W8^=%N">3$(Q\P 8GU)  S[5G*S*B=-HMU>6OAAKC3U1KB#5W
MQO&00T'/Z"O5;*"2;;'<.J/LW$H0P_PKYVM_%#RRI;6:R6K.20RO@[L=>.^.
M*VX-;\2F&2SGO+QK::-HY(Y%)5D88(.1T(JHRLA-'M3@!F"L&4'AAT-5I.#7
MEFG>(M3T73X=/L3##:0+MB@\D;4'H/05<_X6!J2_ZZTM9?IN7^M7SHFQW%T<
M(:YB^;K65+\0HY$Q-I;+[QRY_F*H2>,-)F!\Q;B$^Z!OY&K4D2T,O%DFE$$$
M;2RMT51DFN3U.VNE9O,MI5^J&MRQ\06$?BRUNWO!'9*CAV=2,,5('&*TVNK6
M^C>2RNH[A5.&,;9P?>K31)YQ8#.IX((PI/-=!"!G!(JU?0$DD_K53P]I"ZGX
MA72[JXN4MBKR%H)?+< #.-W4<TB2^IV#_4RN/5$+"ECU+3OM$ENUW%%)& SK
M,?+V@^N[%=A%X"\)KS-8379];F\FD_0MBM*U\->%;0@V_AW34([FV5C^9!I7
M'<\IT6[EL?%VB7=O*8W>X-ON4X(WC YKWR\1UP)<;\ -]>]?-*W&VU6X5OFA
MD25?8@U]-32K>6,%XOW9XED!_P!Y0?ZUQLZT93"HR!4K=:C/>D45+H?NS7E7
MBCYKMUKU6ZSY1KRCQ(Q-Z0!ZTT2SF]-!:%QGH:TK=>U9VF?Z^:,]C6O  '(S
M5,A$%]J%GH]H+N_D9(FD6)=JEB68X P*EOM3\4::6AT378K2)<,+::+*[O[P
M;KSCI5](U9PK*"#ZC-96N(B7<3N1S&>OL?\ Z]"8F<WY_B)(!]HUJ%GYW!8<
MC\R:J_;=799%?4(G3CCRA1=7B(2  :Q)-1()48 JK"N:?VZ=K6:WED4YADY
MYSL./UKUK1[N5] TZ3[2X+6T9X<_W17A<=P))G!Z-&X..O*&O7]$D@/AC23:
M3&:+['%AV&#G;S292.B:[FQ_Q]O_ -]$U4FO).<S _4 _P!*IM(W/-5)I#@\
MTA$EQ=_(<^2QYZQK_A6=<2Q(VUXH2R\,5! )_.H9Y#M89[53NI#YSY/<U1(L
MTMO@_N\?1C6_X)FC O[*&(A>)BY;)S]W%<=*[8/)KJ_A\A>XU1_2-%_4U<=R
M7L;]Y&78BK_A6U6'5Y)^C"(C\R*)HLM5K2/W=Q,?]D#]:V9F=5Y_%()N.M9W
MG<4GG<5%B3PJUW-;E<9#*5Q]17T;X)O?[2^&VC3YRR0F%OJA(_EBOFFS=U.
M:]W^#]SYWA#4M/8Y-I>%@/9US_,5S2.R)U$@^<BH_P :FG&)6':H,\T&A5N_
M]2WS<XKR7Q"5^W'J:]8O6_<MSVKR/Q$W^G.*2(9A6.%U1UVXW<UMQKMGZ5SR
M.(]4B;@!N,UT3?+,C>HJF(T%7#(U9'BBS,RV[#(P&'\JVN3!GTI-4C62U@8]
M,G^52MP/);O3W4D[CBL6:T*O7H>H6Z#HM<Q>1J'/%:&9@Q1^7,K,.,X->J^%
MI2OA#3%51A80H_,UYO,@VJ/>O2_!GS^#K XSA67_ ,>-2P+SRR$MP/RJG++)
MC_ZU:\B=:H2K3 R9GD*G)-4[MI#+)C/WC6C<\1/ST!JK.!O;GO3 QI!)SU_.
MNZ^&L;"WU>1O[T:_HQKD7C5O6N[^'L8CTC46'\4ZC\E_^O5QW)>QTKKDT6X$
M>[/&ZG=Z21<21KC^'-:F9;\SY:-_'6H@,CI4B19SFD!X3;N5D^M>M_!N]\OQ
M1JE@6XN[,2*/]I&_P)KR0QO%(R2##(2I'N#7;?#J^^Q?$;0Y6.U99&MF/LZX
M'ZUSR.B![E>+MF.150GCZ5IZLICD-9+-4EE/4&80MR/PKR+Q%G^T7RU>LWW,
M)_&O)O$?%^V,?C20F<U<';Y<G/RMUKHFEWVD,P[8KGKA=T+\UJ6,PFTDIW44
MP.BMV#0$9[5+<-YFC1L#DK(!C\ZR].N%*+NZ=#2Z?]O6QOX[ZXCN':XWPB--
M@2/(PON?4TK 9-\-V:Y:^^5ZZ6\E8ELIBN6U"8*YRI-:&=S-F?('UKT3P-,#
MX,M@64;)'7!^M>9R7"Y'RGK6AI.L7%II$4,*Y7<QY/?./Z4FM 3/5I[E%8_O
M!^ -9T]Y#WE'Z5YY+K=\W915-]4O&/W@/RI*([G=7-[ 48"0$_6JD][ )'!;
M)R>]<?%=W+3INE_B'\Z=)<2&5F:4\DGK56)N;TEXASBO2?AX2WABYDZ!KIA^
M2K7B_P!H&/O5[)\-)?,\',@C8 7$C>8<88G P._:KCN2SKT3+"H;Q]NH[!T5
M%J[;INDK.NCNUB<=EP/T%:D%A7Z5.LE4U/O4H88H \GUZV^S>)+^+&%:3S%^
MC<_XU%:7$EG<VE]&V&MIXY0?HPK?\<6?E:O:W60/.B*<]RI_P-<NZ^9;O'DC
M<I''8UA)&\6?4%[J5OJ<*7MKD12_,H;@CZBLIGYQTJ?PVL>I> -&NU54?[*L
M;X&/F7*G\>*K2JJ,5/:H1H5+HY1AZBO+?$JD7K<5ZE.1Y9;' [GI7F/BC4M)
M^U$?VG:>8OWD64,1^"YI):B9RC D$4_2W,;20FL?Q-XBM?#NBVFKM;S7L%V[
M1Q;/D (ZY)Z=/2NE\$0V>N:M!)/#FWDC63"N><@'K5J+(<D+;3>7(Z9Q@YKH
M+&SU282W4.G7+VRKN>41':H!ZD]*]<TG1M#L&5K/2K6)\??\L,WYG)K9U;=-
MX=U&'.0UK(,?\!-/D)YCYGU'Y=ZX[FN0OQDDUU^H NI([\US%W"[$XH0F<\R
M_-TK/GNGM8H54X!WG_Q\UNM'M)W+6-JD-M]DM6BD=I_,F61".% ?C!_$U>Y*
M*3ZE*>YI!>3'UJ'R_:I%CYZT^5!<ECNKC[1%AL?.O\Z9:WUY+>?8=1D@(>)I
M8IHTVD;?X6 QG/ SR:DAMV:YB.W(#"HX[.;^UA/L_=)"4!/<EL_R%&B&75W'
MO7O_ ,-XVC\!V1/1WD;_ ,?->#I$:^@/ Z^5X#TE?6-F_-VH0F=C:@9S7.3R
M;M8NSNQ^\(_I6_:MR,]*\Z?Q!)'J%TUQI5QL\Y\21L'!&X\\55R3KU/'WA2^
M97-Q>*]')"RS2P,>TL1%78=6TV9OW=_ Q/\ MX_G0 >.-*75-!:(_?C;S$;N
M#7D$-Y>6<AAF_>!3@ANOYU[]JD8DMW4]Q7COB'3?+N&E1>G7WI6+>C.S\/\
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
M1115$A1110 4444 %4[G3[&\4BZLXI<_WD!-7*SK[5]/TU"UW<JA'\(Y;\J
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
M,IR0V<BNCTZ*-07N=5D4/][R+3<3]"S"G<":>=HWD$C%(RQ5-W4CFJ$%U%'
MS"0H<#)(X JP-/UF:9Y+J6.:/=YB!SN*KS^O2J2VEU*&%N^U@B%<].IS2)(5
MUPW4BP:==I,V2>.0/QS73Z7]NFL$\R":8@XD,2,V/;CC->>ZCX!\4Z@\<VEZ
MU;:1(K-CR8=K@'N9!G)]0 .*[3PYX<UK2O#$.GZKJS:C>1EB;E=RDKV!R?F(
M]>*8CLL:;MYT76#^./Z5DS:MX9C+?Z%J+,.-OVA>OY5 VDSGK(_YFHO[';OF
M@&4IM2CN;U$LX98E9@J(SY.3QR1BHI9H8)FAO+*)I4.&RH/\S6O:Z8$U"T;:
M>)E)_.M75-)6;6KEU08+^E4@.=MHX;I-UOH\3KZE8U_F:M+IGR<Z;9(?1GB_
MQK47P^K#E1^5-'AV/RP=M(DQ[B&UL8?.FT:WO.<>7#+&#^F32PW7AUHUDD\(
MXD/./-8X_2M&31 AX3%57MX;5R)GVDD  =3Q0!-'JFCH/W?AMD'M,_\ A3EU
M.WN&*PZ.D)_O2W$@ _6IK&&*ZD,<:DD''S<5IS^"-:N &M&LU5SDEY3QQ[*:
M"CBM3@E:0R'4+2,?W(BS_P P:Q#--%@>;(3GM&O^%=IJ7P[\06\)FFU/3E'H
M/,)_E7,/9R::I2Y:.8@G!7C/?'- $4/F2 D_O!N.<JO7\JOQ3P185M&M9?\
M:DW$_H16YINFH\4Y"]9,_FH/]:EFTM5!;;TYZ4[ 9@7S_ECTVSC'JD1_J35N
M'1YC&2L:C@GI6[8V*?*=M=+;6<>S&VE8#AO[%8Q!V;&1G&VN#U^+4H?[2AT]
M(Y+R,LL(<#:#V)!X/TKW5;5&M(CC^$5Y;K%JO_"3Z@._F?\ LHI-#/,O!UGX
MUMEN;N\T:V620^9YL@"LY8Y90N_'7G.1]*[^S&H7%HCZA:):SDG='&VX#T.?
MZ5NZ5;*^EH>,CBK!MD![#\: +L<<;6ZE>?\ 1B?T%8VBPQR2.I(+"%#COU-;
M5K*K6XP?^7<C]!69H9"O(<<^2G_H1I#.@M[5..*CDU*!+VXT^*QN+B>%59A$
M >&Z=ZE2<*,YKS^X\;:?I?C759)-0CM 8DBWNNXEAC(P2/SI@>B+)=R1;_[&
ME@';[1($)_#!K*U?4+S3+2.ZDL;8QO,D6!,Q(W'&?NUR4_Q2T38?^)U-(?\
MIG O]<URVN_%#1;Z*#3XKZ^:;SXW F50AP>F G]:3?8D]O\ LZQW,)])!5T(
MLEQ(_7+FN,TGQ9<:GK$%K+8);Q%B?,\W<3@'M786TFY2W^T:M.X%]$7'2HD1
M3#^)_G3UD&.M4(/.^UW$S7!:!OE2'LI#-EOQR/RJR0NU"K\H&:Y'4(<WFX\G
M>O\ (UUL[9%<[J Q.?\ @!_G4@5$UC3=(O&%_<B N5*9'WN*Z&W^(FA6T>TW
M<IQV"C_&O,?&-O%<:I:!TC9ECW+O7)7GJ*XF34=J%DCR0VW!J"U=GL]_X\\.
MK%+]DCG/G.7<F3=N;OU)Q]!Q7!ZMXFL;R4$61.&WKENA'X5Q<UQ>) 6CABB'
M)!V\9K#CU/4KK4(8!(IC=U#;5P=N1FDGV&_,[SQ%J4EV;&\3?"7@52J2$9P,
M9X^E9D&HSK*A:64X8'F5_7ZU:\0(L-OIRK]T6R$?^/5@M* N>E83;4C:"7*?
M3=@=\4;CNH/Z5MVLR.BM&X93T*G(-<OHMQYFCV,P/WH4;]!6QIT4-I:+!;C$
M89F_$DD_J:ZM+'.:$#_Z&@],C\B:\UUA/^*PU!?]I&_-?_K5Z#;R?NY%_NR,
M/UKA-;&/&-S_ +44;?S%2,\J^(T]Y86'VBRNI;>58\;HV(Z/_P#7KQN'Q9XH
M.L6\<NMW1A:9%*L_4$C(KVOXH1;M'F[820=,^AKYVFF,-S&Q7=\P8=NAJ.Y?
M8^RM'N7PZLW'ED#\J=I4I5G'_3,#_P >-9VF2'S#]*FLVVS2?[G]:L1;UB^,
M.G2A6(9E/>O&+KPW/K_BB=H+J199%!\M0.BJH)R3[UZ/KEPQMG'L:X!);RTN
M4FL[DV\J KYB<,05 /\ *D]R2KKWA=_#=E9M=6LER;ES& )1E<#.3CZU@66G
M:?<ZM )],VL7SS,Y*XY'?VKI[I;S4I1]OO)+I8?F E8M@^WI61=7VGV,D#?9
MY"Z/N!7CG\Z3:Z"/4O#_ )<?B."5<F20G<=PP./3K7JEM<A5VGUS7DNG026.
MHI<&8R*#P#UKTW1_LNH7\UO.9E\F)),H1R#GC'X41T0[&H;Z&-E5I54N<*"V
M-Q]!ZU';SYD>-CAO,;@\'K7G'CSQUX-LK6;38[?6K>^6W0)<0K'\N['J^>PZ
M8(Z@UYAX;DT^Z>UUG3;2X6\EC_UUU>22$Y[X).#^)JTQ'TAK'VAM+N$L[N.U
MNBO[N1R,*:Y0W@M;<PZAJD5W.6SYBGMO.!QZ"L=?"_BB\TU;K[?81HXW#=O<
M_B,#/YUS.L7UUH6E->7-X9 -K;;>%8_F)QU)/% &MXNN"+^UGMAYQ$1!VD8'
M/&3VKSN6.^97VBWC)?=\\P]<]LUT5BNN:P^ZUCM=S':SW-P[9'^Z$_K6W+H,
M.AVL%QJ5O;7=R]QX@MV5 P158]LG)]\]?:E8:=CC].N;'4+J'3]0U(*K9?%N
MA+. /X2P _\ U5HW&AZ7'=K<:6]R(8^0TP3) YQ@=.E>E:'X*\/^0\_]E6T3
M6=P]I!Y2!?+C_NCC('MFM]?#^E[-GV-''HY)%%@;/-;0:5?V]J=7D2-!:C&X
MC ;>W'.>QJK<6?A&1&\N%G.PD%5=><X .#@?7I7H.J^'K622QN+-8K/[+,)6
M$<8'F+D?*:36?#^GZE=/>71E'^C&$I&< JQX_$4-7!2:$T74IK?1XXCIMUY5
MO&%1@A^=0.N3BMK1/$4>HVRW%O:NULSA!)O P<XZ5DC5K*PLXK6.*5HXHQ&H
M.#P!CUK,76(K&":WL;)((M\>U5.,'.2:!'I,/#SK_P!-,_F!7'^(EV^*4?\
MOVP_1JFL?$S-=SJT!PQ7H?;%5]>F6XU>S8*1F%NOUH*.%\<0O((=D;.1*#@#
M/4?_ %JXMXH0 LR1%@><H.17L5O_ ,C"BMN&^'=E6((-:-Q:V]PI63]X/^FL
..:2?S%92AS:FL96T/_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<FILENAME>tomz_10kimg7.jpg
<TEXT>
begin 644 tomz_10kimg7.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" #W +T# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M[5R.HENCJ5-O9G/:#<V=GXGLKF8JT<9=\<==C8[=CS7/Z,@:X7<HX;O6Y=>
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
M!ZUSU92J2]I+=G3!*"Y4=GX5UZ2.Y30A:B2.69IVF(SM(CX7\:],T63F?**
M(L\J./F%>!:;<WL?B539R[91]W(R/N<_I752:YXCL[4R27Z1J?ES&,O_ (5]
MCE]?DHQ4NA\CCL,IU9-=0^+ER_\ ;VFB.?Y50N<G&>.E?8.CM_Q:#3OFW?\
M$EC.3_UQ%? 7B77+R^UR3[8QNC&I17G;>57T Z#\J]T^#7CCQ-JOAC7;'4-4
MN+VSLK:*W@63!6%"K# _  ?A7)7?UBM[IU4O]GP_O&I>6Z31C,<3NG[R/S1E
M5<=#[?6O-=;M=1U75[VTN;I3>R31SL^WY&"J05/Y]:[#4I/$4T+0*UO'8/"5
MFF+!9DSG)7MZ5YA<:AJ5MJ<5TTZ>?%&$S(<Y78H .,<^M7BU%)*1&"YKMI]#
MEKDRV.I7495$G$S(9%D9N_0>U:*KI$5DEQJMB[[V!.Q2JOGON'/!/3OBLXZD
MTMS/=?9(HIWD(>3>>3UZ$$5T,#:;+X8D.I_O;5)E#(LFUU9N@!"],D'UQ7R=
M9J[L?34T[*YF7%]:6:+>::"W&PLYZ@\],>U8UQJ&E372W$MB=QW-(&D8B3WX
M QSS6PTECIP6XLB)AMVY;!![]-M9=Q)H=R7=;26*5_FW"3C.>>,=*Y^FQJ9S
M3LMQ!) @CC!7C>3G!!SCUJPFH+:?%O7+RZ)$DJW2X3GYF4@?SJ"24F=5CB5(
MWPNW?NYR.>1G]:HWI ^)^K,W.)I<UTTNOH93Z&I<WD!T>YB\D@L0=V>1\PSV
MK/AD5%81 ^7(ZLQ8^C#VJWLM9;22/#%BO R*SHHS#BUB!9II5P77!'//7M3B
MD$IR;3?0];DU#39+:1EN@TH'RH%D4GGWR*J3ZDK:3>Q^40&MY%SNZ?*?:L -
MABPD_4?XU)-/(+&Y4L<&&3/3^X:UHVI1<8]1XFM+$24I+8YKP+K7_".Z9KVJ
MB 3M%#"JQDX!)? YKU/X=^-M3\165^][#"K6\BJODK@$$$\YS7F/P^M8+ZVU
MFTN(EDBDBC5E;H>217H'A'0[?P]83I;^:IN'#,"V<8X%7[EWS+4S]ZRL5&D9
MH&!5I3TV!MN?QJ:*2-(D"AE.P%E8YPQZ@'N*YZ;7(8;R>VDEMHGB8KB65E)Q
M]$/\ZJV_B);G48+-8%8RR; \<A8#KSRHXKS?92W.IUH\O(=8-7CT2U.K/Y<P
MCE$9MS@LX/7J" ..O:J#>)K37&6[B01"124A"@,%!Z8&,_7'-075A%?V36UT
MK-&6S\K%3^8I$LXK=%2*!$51A<#H*JRMYC@XW]]!<W-O=6,\89)5*_,N0>,]
MQ4MJVV!-H &.PJG<1B.VE*1A2<9P,9YIUK')]GC))Z>M4MB*G+S>XM!(WM;7
M5[C4C%,\T$>"$DP'&W.,=S78Z$MGJVGB:ZAW1,N\1R]4R> 1Z]:X1I$$MWO8
M)L(+LQP,;176>&)(A 9O.5DDC!4K7NY;.<I<KU1XN-A%1YMF<SXRM;2T\1O'
M9PK$GE9POKMKZ9\)Z-X:T7X<1R:-90V=S?Z;$UTT>[,K^7U.>,Y)_.OFSQ@8
ME\3R!V/,(/YJ,5]$:=;QP>!["=I" EA$Q_[X%>UA*:E6G=;'D8R35&&NY@ZM
M]FCT6]^W.SVHA;S5/(*XYZ5XUJ"2WDB3QQ)^ZR=A<]-BXYQUKV'4[N$:7=2(
MGVC$3'RQP7XZ5XW>7#^8DT,0'+J8Q(5_@3N!_2L,WVB;99U,:TN'MTD9K=6<
MN<M)("![88?K6Y8:;9RZ9+<7EU*MB9%\V&.2,$R?P\D],XS[5C17D6T[;,N^
M<-OD5E]^"1^=:MC8":RD-Q>7"V,C@ND<:%M_\ Y;IG&?:OCIL^JB.D6PTP+(
MH6X0KC#;"I/J/FJE/_8LT@N(X9O*VMO0.J\]L=<#/Z5IW'V.T*K-"UQ&5 96
MBP ?7@U/9'05,FUI44J=L<D.Y,_0'/7\/6A7Y+@[<UCB@ZFZ7;"!$[+C:P/(
M(YZ9_6L^ZQ_PLO5]V"/.F/ZUJ2R+'J MUM_*C+J,,!D,",D=Q]*SY O_  L[
M6,]/-G_G6]+9^AG/H:<,=L0/O _A_C5Z-(>Q8_51_C448MY4R9@/;RSFI52
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
MZ'3@%<\U6PUJ<O!<V,ET]G%<1M<)G='GYA3I+75KR&YDL88!#$P3?*^"2>I
M]!7):?'<:WXX-Y,DMM+-(\YDABR"W)Z=,>U>ORV\<7A6WMH5P964R/C!;C-4
MM27H<2UK?7#0AIE9T0)B%!&F!W/<GWI0SPS^1<'##H>QKH[G15.EP7:7D=O*
MY)7?+M)4'!4#N:S=4TZ.WBN(%G$YA.Y9?[W>K:N(?#JFEPC;-J$$9'!#.!5R
M#5]'<%4U6U/_ &T%>3^(9I(=6EM_E>-PK[" <$CM72VG@6SO+""9[N6WED0,
MR[0P!-8M&B9WL<UO+@Q7,3_[K@UH0+\V!7F$GPVOHV)M=30^G!4TJ:7\0=%;
M?9W4DZ+_  AMX_(TXB9Z_&G[U3FFW40VG%>76_Q#\1Z;*%UG1UD4=2$,;?X5
MU5A\0?#>JKM-RUE,?X+@8&?KTJT(W5B78:C$4>>E2Q.LL0DA99(R.&4Y!_&A
M4;/ _*K1F2Q11_6M>QC0,#CGI5&.TFVABIQ5^S4JPW#%4!Z+X7\E;A0T>0?>
MO;=,BC;3X\+VKPSPU_Q]Q^Y%>[Z/@::E1(KH3&"/^[2^2N!\OZ5/N%/#C'6I
MN!^:=O WWMIXKL?#]M&+6>17.\J<@KTX[5/I\&DK%$T,,MTQZ_)WK=^W6D*G
M?"D9V\+W_2F2>=Z]I.A7'@UX;72;HZ[YGF>9Y;'?].V*S_AKX'TK7/%<EKXV
MO)=%TR.W>3SF81%G&,*":U7T/4;R^<)(_E[B5*SL,"KVK?#C5[+2X]1DA^T0
MR)O#;BZ@>]9/0V1ZMJ_@3X7^*+71=(M?%$*#2;<NTZ72N9 .2AR>,X[5Y/?P
M^&+JW^U:-I4-A&Y(5 =Q&#C.3ZXKDX-**3LY$2 #[H4U.PG5S$-NP'CC %./
MF$O(U;0/9W$DT*>9*8F6$ [0&(QDU=\/^)(;J$Z#J[BRNX1MB9^%D Z8/K61
M#//&5)V$^_:JM\L=[#Y=Q:1,.H89##Z&E)ZZ#BM+,ZN]L_)Q(3(6'.4;(W>H
M]*Y[5-:L=/@;[1.KOC_5*<LY]*QMMQ;#=;S2R<?<D<D+57[+;7C'[99(6]5R
MN:?.PY$8$,DNK>(!/.!F1][ =% [5Z+9S2N47+?,1^%<W#I\-G<'[#:NCN-I
M?<6P/:NAL;>]DN$0K,4QS@$52VU$T^AUP,B@(.< 5/$Y!!9L#ZUE?V9(1_QZ
MS..YRU68='.5_P")=(>?XLTE833->2/3[A +E;=QWW$5RVM>!_#=]NDMY8K>
M0_\ /.0#]*ZB+18-@)TV,'/\0'^-79='M2B^786JGN24']:?,@LSQ>;1-?\
M#S^9I&L91>=BRX_3H:T--^).JV<@CU33$G X9T^1C_2O5$T>/.&CL /1I4%!
M\.V)(9I-*4^AG2GS+N'++L8>G_$CPK<1CSKZ:T<]1-%D#\16W_PF7A=0&;6(
M/4'.,TR^\$^";NS;SWTM9\9#)/CG\!7%7/PRTV0G[%KEI"#V>;</U%/VB74M
M4Y/H>R:#X]\/PW$4JM<3KU_<1[LUZS8?%_0H[5(8M"UV<@?P69YKX\C^&[VO
MS6_C.PC;T$CJ1^0J[;Z+XHL(]D'Q.2-1TVSS''Z5G*I%]1JE/L?8"_%)KDC[
M'X&\0R#_ &K?;_.F2_$Z\B?:_@G4HSZ23Q(?R)KY!FT[7KH_Z;\5)V'?:TY_
MJ*='X,\*S+OU/XA:G)/ZQV9<?FS9J?:1[E>REV.@TS0K[3G)CD?YA@XQ5X:'
MYC9D+[NI.\<UZ1]CL<?\>D7_ 'S5.;3PK%H(U*GM@9%>!_:=1GL_V?31S-EX
M=(=7BM)7;TW5VD#>*!IR6,.GXMU!4*T>>#U[5W'A7QU_9]D+/6+'S!$H$4T2
M+N(]#_C75_\ "S-%Q\NFW'_?*C^M;K$J:O*=OD8.ER.RIW^9\XS?"^\N)&D7
M2I%+'. K8_E2)\)=4D("Z5,?^V35]$GXFV(^YI4Q^K**BD^*%NOW-';\9 *?
MMX+[?X"5.?2G^)X/'\'=:;&S0Y6]RF*MQ_!O7L;5T%?JV*]ED^*SK]W2U_&7
M_P"M5.;XO72@^7IMN,?WI"?Z5'MZ?\[^XKV=5?87WGF47P5\0?QZ'&/3&VK4
M?P3UAB"-+53[LHKK;CXW7\4C1BWL%8#/+FN?F_:(ODS_ ,@Y0.^&/]:I5(/:
M4F%JBWA$?!\$=6)&^UC3W\T?TJ\OP0OB,'RQ_P!MC5"S^/UYJ4Z06]W9B1SA
M0(3R?;)K7_X6GXE;_EZB'^["*F5:G%ZN12C6:T43C_%7PSD\,^2]U"DD<V<.
M)6(R.U<Y#X?MI9 BP09QGYG8UW^M>+-6\160L]2NO,A#!P!&!S7/I;PHRLI?
M(Z<UQU,1K[C=CKA2T]]*_D9D?A:%Y$4PV@W,!G!-5_[%M?[4DT\V]L&C8KN\
MO@XKI5?#AAQA@:RU?=XCED/5G8UE[>;ZFWLXKH,7PY:@<^0/I"*</#]G_?4?
M2):U#)33)6?MI]RO9Q[&8_A^R88:9\=?E5156Y\)Z5<[?.>=MO0!@/Z5MM)S
M3#)2]I+N5RI'/_\ "$^'^C1SL/\ KJ:!X+\-@_\ 'F[?65JW3)33)2]I/N)I
M&,OA#PVG_,,4_5F/]:D_X1?P[_T"(OQS6D9*3S*?M)=Q<L>QI;Z _O116)H*
M),4\S*!]XT44QB?:HQ_$?RJK)J]E'G=(>/\ 9-%%- S,F\3:+R6N#_W[;_"L
M^;QAX<C(9[B0_2-O\***U1DSCM:USP'>7<WVBQN[DS1Y)B&S!]>3UKSX:)<3
M)-#9VTDBN_[J1Y%#!,]^>N***].E[L=#AJ;GJF@P:Y#!;6NB^ +39"HE$CWB
M;R>YR3U-;U]X@O-)\N/5O#\MO.W54GC<9^H-%%<E75ZG1#8AA\6><?W>DR?5
MI%J[!K_FRA&M=F>^[-%%8M(=V;,4GFQ"3=@>F*SQQK1/^T:**@V[&ENINZBB
9LS0:6IA:BBD2,)II:BBF2-)I-U%% '__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>tomz_10kimg6.jpg
<TEXT>
begin 644 tomz_10kimg6.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" #) (L# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#[+HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "FE@JEF.
M.I-9NL:UINA6#7NI7 AC'0=6<^@'<UXAXT\;:GXDTV]AAS::>(GQ #RXQU8]
MS[=!^M 'OZLKJ&5@P/0@Y%25\UWVK:GI&LVS6ES<1&2"V=EB9D0(85)/RD#/
MZDUNV?Q$\2Q*62Z:9,\+<(K ?CC)_.@#W>BO);7XM7B.([S1!='^(VA;=^"8
M8_K6M)\5O"MG:076M+?Z.D\C1+]KM6!#  D$#)7@@Y(% 'HE%<_I/B[PSKL0
MDTG7+.Z#<@+( WY'!KH* "BCH*I?VIIOF^7_ &A;>9_=\U<_SH NT444 %%%
M% !1110 E<-XL^(6E>&@;)&%WJ;?*L"GB,D$@N>W3IU_G7<U\=0RM=^([V:2
M0R-+=,V2<D\MS04=;JFJZEKEZU]J%PTTAZ _=0>@'85D7F]=/F(' C8$]NE:
M\2HD.&Z@=*KWL&[1INO*$U(RY<Q--K<I8>85MK-4 [?Z.G:LC7M=M=!NET]M
MLM\4\QHF+*$3U) _0<_2NB^T)I<6IZW) 96MK2W,*#J[BW7 _D/J:X*YOET'
MPYJ6N>($AO\ 5Q;AV65 Z^=,WR+CNPQP.V*2U)>AHZ[K^O6=K#YOCVU\(Z<4
M5RD;F(L",C"K\[''KS7G?B#QKY]J%CUS7]</F[OM,FFR)'(-N.6<\CI7*QR>
M,M0\0>5;1PK?7IYO@HEEB'<(QSM^J@?6O1="\!:Q<Q3V+WUS9V\0']HZC?3O
M+)SR(U7.,D<X'3C)]:N*QF:%J_A74;1(->N-0T/4'E(ANEB9XFZ?(5';Z<\U
MZWX?TWX@Z=?,DGB)(]."[HKJVE8>8#R!Y9QV_O 8K3\->!O"OADK=Z?9FXO'
M&?M=T=SX]AT7\!71O,KS!<YR:$QV%OM8U>>R6SN=0FG0#YB^ 6^NT &L,PES
MSD_C6;'#JVG^(]0BNM0,UI/(98X9!GRL]D;.=N:Z*WB#@'K2O<=C2T'7-1T=
MEC,CW%GGYH'.<#_9]/ITKU"VN8;RUCN;=M\4B[E->6)!76>%;AHY9;!F^0CS
M$'H>X_'@_@:H#L:***"0HHHH *^--'+2>(KERN(OMCJI]?O5]EU\@V*[=68?
M+D7[YQ_P*I&CLEM?E+,,@K27T/\ Q)YAM_@)K01?,C HOE7^R9N,_*1^E S
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
M&OI/X.MO\,:FQZ_VE)Q_P%:I$GI5%%%6 4444 %%%% !7RS#N^WIGK]L;/\
MX]7U-7RS;G_3$., 7C?7HU)@=I HPN/SI]VI:VD7/!4Y^E%M@P]?QHE8"TD4
M'G!_E2**C>%[%O'CZQ%+,)4CMW:/=A=YA7G\0>:WIX%+@H#ZG)I-Q76+Q2&
M,%IC X/[E:EFD\M2I5C_ "K)[@C'N871R6;Y>O'>L2ZACEPEQ"K\]'&[%=9*
MB2 DIM7'..M9SV;9W;1M'?M2&<Q'IUL)<1V\,2]]L:@_RJXMNJ)M7IZ!:U6@
MC5BR\U'(%"K@9QR<T 8MQ&%A8'*\\D#)%>F_"58E\+78A;</M668G)9O+3)/
M P?:O.YVX)(VJ>.*]!^#XQH.L $D?VBYY_W$K2)+/2J***T$%%%% !1110 5
M\MP_/=2;>JWC$GZ[J^I*^7+3:NIW:_>'VHG@^YH&CLK,[H*KSK,5FV=P14MF
MRB+T.>E3SC;%*1SE34C-2/S/[8NF"@I]GM,>_P"Y%3S)\PR<G^M):KB^N'8X
M4P6O_HE>*2[;!W1Y/.#@UB]QD+;22.2>P%5GW< 9'^%22$LH<$@XZ=LU")%_
MB7F@"JT;C.X<FF/!^XQ@@^U79944>O'Y5&L_R^HZ9- '.7@/+%.A%>A_")=N
MBZP/^G]C_P".+7%:IY;.&VY!(^85VGPC/_$IUH=<7QZ_[BU<=Q,]*HHHK4D*
M*** "BBB@ KY6LB3K5ZH_P"?EO\ T(U]4U\I6;A?$-XK<$7#>V.30-'6I(8T
MSV!JS+=;[=MHZ@]ZRGD);:.F<XIS3%;<[>I(&?QJ2CKX7;S)BGRD6UH#^,(J
MR8_W!=N9%;D>O%4;5@))6+$YM;4Y''_+(5;C>-"RE@"3GGM63W&56VAQGY<_
MI43L@^[Z]<5=<1@EMF[Y<_2J$GR$X7\.OTI"&&96."-P]*@F)&"N&![>E#2J
M8V92!Z@=Z;'Y=PNQ6^;_ &30,J:JJM H[8_(UV?PC&-,UOWOL\_[BUQ.J@PV
M^W<6&[]*[GX3L&T[5\=KH?\ H-7'<EGH]%%%:DA1110 4444 %?(JS >(KUE
M&U?M4@(/8;C7UU7QBTW_ !4^H)G_ )?),$G_ &C28T=H)F>)V'4#^=2'']G2
M[FY0;LCFJ%O)NB()V@U-<2)'I$^,*3"Y'X U)9W&FR;F$G)'V*S;([_N>E%[
M<<G..W3L:RM-NOW%N$_BTVQ8$=_W XJQ<+,TJ1JOS'J<YQ6;W&B?[6Y7:"5'
M3 I'G&"V_#=QWYS5.Z1H8\$[N><=ZK+<,Z@*.@R!T^M("208&Y3TQBC3WPS-
M@Y[BJ[3[OE8\@YP*J?;3;L>NWVH L:Q,661B<*!N^E=K\%IFFTC6F/\ S^#_
M -!KS#6-0A:VD"G:'^5=QZDUZ3\#5(T/6"?XKE3_ ..UI$AGK=%%%:$A1110
M 4444 %?&VJ:+JFG>*=2DO[&>V#7DK+YB%=P+'!'J*^R:CDCCE3;(BNOHPR*
MD9\H1R,8EVYZ47DS+I%VS-@K"^!Z_*:^C;[P7X:OMQDTF*)VY+V^8CG_ (#@
M'\:X_5O@W8WEK<QZ?K%Q;M,K*!.@D5<C';::5BKGB/BCQA?>&/"(U72+)KQU
MTRQA+=4200J#D#D@;NOK6MX#\6:KKGA&UUC58TBNI'=-R*4655.!(%/(R*]/
ML?@ZL$,<=SXB9@D<<>V&W"J=BA0V&8\X S3=8^$-X;:/^P?$MQ'(,[TN%C"G
MTP53C'XT-7$F<G=:DS_*'"EA][(JMY\<:[F=0H'<YK=M/@OJ<EBRZM>&YO-Y
M(E2^=4*\8!4(,'K7;Z#\+_"^G:5#;ZEH]I?7"Y+R2[I >>!\Y/2ERCYCQ^;4
M;-7$C7D:9/S N,U0N-4L)"5M[H2R>B MS7TK:^%/"]B +/P[IL&/[EJ@/\JU
MH[>"$8BA2,?[*@4^45SXG\8^#-=\82:8-.L]15;60M(%L9'# X^92!PPQP?>
MOI'X1Z7?Z9HNH1WVFW%AYDRLB7$1C8\'/7D_6O3:2J2L2+1113 **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
;"BBB@ HHHH **** "BBB@ HHHH **** /__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<FILENAME>tomz_10kimg1.jpg
<TEXT>
begin 644 tomz_10kimg1.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" "K .H# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M<U",\Y@;C\*Y?]F7<OQQTW!P/(N%(_[9FOK\BE>C*/9GTN4R_=N/F?>HZ4M
MHKZH^@"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** &,F[J
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
KBBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>17
<FILENAME>tomz_10kimg2.jpg
<TEXT>
begin 644 tomz_10kimg2.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" #! )H# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#[+HHHH **
M*I7UU!I^G7-_=.(X+:)II&/1549)_(4 <!XN^,GP^\#Z@=-U[7%CU!<%K:-#
M(Z9&1NQP#@@X)SBO/=0_:V\#P[ETO1=3OI!]T,%C#'\S7BWPU\'S?&;XHZOK
M>O:?<7-A=W<DUQ*).( V]@<GAL'8@7TSQQQ]8Z5\'? .D?9FM_#\,C6ZE093
MN#?5?N_AC%3S=D1=O8\%U+]K;Q!.G_$C\$QQJ<@/.SR?EC%>E?!KXX7'Q!U>
MZ\.^(-&&FZQ##]I0QYV2)D=CR#R/K7IA\ ^##ICZ:?"^FFUD)9H_LZ\GZXS7
MSJ+>/PC^W3%'#"MO9ZI&GEHBA4 >WV  +_MIW[\U2NQZGUI11104%%%% !11
M10 4444 %%%% !1110 4444 %>0?M%>)QX9^!VL;'VW&I[=/B'<[_O\ _C@>
MO2=7U;3]"TN;5M6N1:V5N TLK*2%!('8$]2*^1OC1X\TGXK:E::;X=NFN-#T
MD;V=@T/FSOD'(8 X4# Z=6]J:$>B_ &\\(^#?A):W6J^+-,MGNB)'6XN8XC'
MGD Y.2<L?T]*[74OC_\ "72B%D\86]TYSA;..2?./=5(_6OD;1_A7=:I!+=6
M4,3V\!*R2[EVH0N[!+$<XYQ79/\ !6[T=';5&AA\L'<#<QIC#!3P.>Y/N%)%
M**25B59:'K6I?M6>!;<NFEZ+K>IN,A6$"Q(WIRS9_2O"/%/Q(E\7_'#0?B)#
MX=GTNWTLVZ21+<*TDBQRERV<#DJ=N/;K5N\TGPSHND2:C+;_ &E(E)W$-AF
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
M2M>@0QQ:C:Q72J>JAU#8_6MBN ^&7B[PWXL\#V3^%T>"VL(H[5[.12K6Q50
MA]1@<$9!KOZQ8!1112 \4^/R2O9?#[RHWD*^+;)V"*6PH60DG'8"OGG]K2ZM
MYOC=I"B3RS!I42.TF4 /FRG@GJ,'J,BOJ?XT:L/#WPRNO$+6<EY'ITJ2211*
M"[*V8^">F"X)/H#7R;^U5JEKJWQ6\.WD,H,;:';LY;  W22-WX/##IQ5+H!X
MLMQ:1DV)O(V#\>8C9C!/3)Z"K'B.>UN]'GN;"W%O:L8]D88-MQP>1QU!K'\V
MTADN )HVWJZ*BD;3D<'TZU<O_+'A5HT4;5?Y0HX3YAW[]36M[W)2L7_!<BQ6
MA8Q;B6Q]1FM%K:]A^2POH(X=KQ(TENK2HKG+ -U[#\R.,G.9X2;9I+NI)?<1
MM7@D5U5E;3W,+M;VIG*D;F5<[2>@/XUT12E!7"]F1VZ)#!;PPG,<*JBY^;..
M_-=!)X@^T::-)G:\:RP2;7S28@#GHN<=S^M9TFGZM:PN\]G-#$HW,SIA0N<'
M]:233]::$K#9SI+(I,1:,D' SN]\"M1$6DKI>@7W]H6*WJ7P3RUN&F <#G.&
M!R#C ./ZFK>JZK_:3PEY)696)W3.'./0<]*YO69O$VESV7EW%W:2F/,DD(*E
ME)Z@>AP?RJ74-;UJ]\-V.DPW%TT_F/YTTD.'E4X(7?U(Y;(/8 5GSVT2'8O2
M+M+;5X/+=ZY%[&&7QO=F?:_EA9 .<$X%=8N612&'/"Y/ _/K64VBW%QK<FH1
M7Z1'8J%&3(&!C'7\:<E>P':>#;JUDU*&P=1+?R3"2"U#!?M *,I56.%W#(.T
MXXZ9KU5M(:/3DN_[!G,N-TEOYD8,8Y_B)VG\*^8+_5+K2]2^SBW,SVS*Z7$1
M:-U)&5/'W2/:GMXXUH!O-O=8,9PI5M1EP<CH03W%<DXIRW [77-3TF\O[7^R
MYFGBAMQ&[+\R,^<D*W\0&0,],YQ6%J/S:;?,N&)0*#TXR.,?A7,Q^*H@!&FE
MD*,;5$V,?3BM"+7EU2POX5L_(58U8YDWY^8>WO6T914>6X'Z'_"G0?%'A_19
MX?$UOIL+>7;PVWV"0N&CC3;ER0/F]^]>F5R7A'Q?X;\7Z2;CP[JD>H0V^V*6
M2-6"J^T';D@<_2NMKD904444@.9\<:"OBCX?:_X>*C-_8RPIGG#E3M/X-@U^
M<OCOQ);^)+/P(LA_TO2='72KF!QS'Y4T@3.?52M?J!7YH_'3PO\ \(G\>M<L
M4B\JUN9_MUOCH4E^?CV#%A^%-;@>8ZEIZEVD@C$8'. ,5;FF5=!FM H18F 7
M;U;YE//K_P#6K2.QK:7"CI@L*3Q-H-]H&E6;7,T<B:K90W\?E_PH['"G/<%3
MTK6UA)B^%2W]E,@XW,<9[FNSTNS6]N!#F/Y0QVM<)!P#_>?C/ZFN)\)D?8VR
MQ&W)Z^^*[G1[B&W@GCN+=I8Y#SMFC0C(8='!XYZC&,5TT_A0F37&GPQ6S2>?
M;DH!\J7D3L3G'W1R>_X>U9JHH W2%0W(!.,D5T_VNP: ^7!(K21J41KJU 4Y
MX!.WH#D]C^'-<M"[LQ4N V'!;>!V/<\<_K^5:7$(FWSMWE E/F_R*D,I209
M<JH4 \!<=,],U5>5HR VS)[-W/\ G^=0[]\W'.><GI@&BX%YVD VR+L0';G/
M0_YQ1;OB9@<KC@%1T/H*@\Q68JH<ESE5QPOKCL:D:619=CINVC#!>_;/^?>B
MXSA?$WF+XGEABD*JXCP2W7*CJ:K+KNH+$8YIOM<.1^[N5$HP  !D\C@ <8Z5
M)XF8Q^))&5OF58R"!C!VBL+/-<$G[S'9/<T;AK*X826T)MG/WHMVY<_[)/(^
MA_.M318R\>J,R%=]JK<C'.]<G^M9FB6^GW>O6=MJETUK922!99E7)0>N*]O^
M)&B^'=.=8_#>KI?6BVJ^3 I'^BJS;G5CUQN4%1Z,?2JBKZDWLTCZV^%GQ.^&
M_B9T\%^!/-B;3+,3?9_LK1(J!@K<GON89SR<YYYKUZOA']E>[,'Q_P!2C^VB
M5;[3)LM(FUIR)%;<OI]TG'I7W=63-&%%%%(05\)?MB8_X75HF?\ H#Q]/^NT
MM?=M?"7[8G_):M#'_4'C_P#1TM- >#&1F@D52?NY_P#KUT_Q0;.D^% K D:!
M9@X_A^9SBN+BG\QEMH6#R.=JC=U-=M\3X&BTCPAYB;7D\-V<C^[;I%Y_*M24
M<GX9(^S,K.41NN"!GFMP3<ME@@).1N KGO#[?Z(5X^\>:^D_#^CZ;+X>T^1M
M+M6+V\9+F!26^4=3BE4KJC!.US"M5]GJT>'>86D^^^_[V">*-Y)9HY<;3G .
M?_U]Z^AUT32E/.DV?_@.O^%']B:2!QI5F,?].Z?X5S?VC'^4Y?KD>Q\\^;O+
M  $D'!/)X'7^=-+*D 0')[$G&/H:]_E\-Z'-CS-'LVQT_<J,?E35\/Z/$I2/
M2;15ZX\E?\*/[0CV']<CV.)^%<W@V&YU*7QG)I31(L;1Q7R M(<MD1GL>A->
MO16?[,>8YS=1%Y5!,8N"RIQR" <<8KD6T32P?ETVU'_;%?\ "O*?&4$-GXPG
M@MH(XE\M#L5=JY*CTHIU(UZCW1T4L1&H^5(YOXU+X97XL:F/![JVB>7!]G*D
MD?ZI=W7_ &LUYQS6SXF8/KTK#^XG?/\ "*Q:UM;0ZBS;SR6US%<0G;)$P=3U
MP0<BO4K[QEKWCU[O7/%-]:W$]O!'9HL<:Q2>626)V*,%<]3UR0*\DKI/#[,D
M=YTR8EX;^+YQBK@]16/9?V7=0NKW]HNR:XDW%X;EFPH )$;8[>YK]#Z_.?\
M91W#]HZQW<'[/=9'_;,U^C%0QA1112 *^#_VQV*_&C1".HT>/_T=+7WA7P?^
MV1_R6?1/^P/'_P"CI: /G+=&\,SLL>T@J!QD]>?K7H7Q479H'@8%2"OA6QX/
M_76;K7F5]"-X:->O7 ZUZ-\4Y)3HW@H.3C_A&;)1QCC?*?YU2 X>SDV:'-MD
M\IF."XSTS[5%%<72HO\ I$@53D(7.#ZCK1;;CH,PQD9'\Z8JX7(&WTQT-4];
M!:YU>B>.O%6ARJUGJTTT>?\ 47+&6/Z8)ST]*]P\%_$/3O%8%E<QK8:L%W>0
M6RDP[F,]_H>?K7S3LQ$A^;=GGZ5<MYI;26.>UD:*>%@T<BM@HP[@USU*$9K;
M4YZN&A46UF?8&!S3=N<=*XWP%XTA\5:;Y-T5BU: 8ECZ>:!_RT4>GJ.U=KMK
MQY0<'RR/!G"4)<LBN8?:O#_B&N/'5TH&3Y473M\HKW@+7B/Q  3X@WLS0B:*
M*"%G7V*XKMP+M4;\CLP7\1GC6N/YFM3MZ;1^0 JC#!-<2>7!$\K]=J+DUV]Q
MX2UK4I9;^T2.1),E(NX&/?BBU\-:AI'AF^O=062T=I!$I1!(">@!(/'/^>*]
M%ZL]HY(:'K!&?[-N/^_9K<TK3[^!+CS[":,&$)EA@D[L_P"?I7,M<W&X_O7'
MU8UIZ3#]L%R997S$@=<.1WQ1'<#VC]E)73]HK3UD0HPM[K@C!'[LU^BU?GK^
MSS>+H/Q<\-ZMJ%NQM;IGLTN7X\MY%* 9[@DJ*_0JDP"BBBD 5\'_ +9'_)9M
M%_[ \?\ Z.EK[PKX-_;*_P"2S:+_ -@:/_T=+0!\\-AX&SUP:[KXL?\ ()\#
M>A\+V9Z_]-):X4LHMW]NE6M:UC4-8TFT.H7)G^Q6J6=OD >7$C?*O'U)_&K
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
M6F:3+*H622SM4B=P.@9@,G\:Z2F 4444 %%%% !1110 4444 %%%% !1110
64444 %%%% !1110 4444 %%%% '_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>18
<FILENAME>tomz_10kimg3.jpg
<TEXT>
begin 644 tomz_10kimg3.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" "R )\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M&:V?+I^P4>SB/G92TS07NKZ+S-1E*PR+*%(SN(8>]>HZ]_R7NS/KH+?^AK7
M6]^FEW4#/&TGG2+$-IQMR>M>B>($_P"+\V'_ & 6_P#0EK@S!)8>21S8IMT9
M^@OB/0;7Q#IZ6D\KP21OOBFC^\AZ''U%86G^!+&PT+4=.>[EN)+^/R9+AAAU
M0#"@?2NW=3GI6#-XET.._6Q?4(Q,S;!_=+>F>F:^0A.LX\D+VW/EH5:W+R0O
M;<YGPSX#@\.ZP-1&I7%W(L1B D  P>_'>N,^+4PM?%UE(\<<@?33'A^V7/->
MV$"N>U[PCHGB*=+K4XI'EBC\M2DA7CK6U&LXU.>H[F]#%<M3VE1W.<L=-N]6
M^"MCI=C<"*YELE"-NPK8;.W/H<8K \,^%]8\/>'-:FU;$,<Z(J0!PW(;ECC@
M>E>E6-C!ING0:?:J4M[=0B*3G JEKY'_  C]Y\W\']163K2]Z*V;N8_6KN4(
M[2=SB?!?A7Q)XO\ C1K&G^%M>&B7R6IE:Y.<%,("O'KN%?>MG%)!900R/YDL
M<:JS?WB!@FOAWX5^---\%_'K4KS4K>[NOMEI]CAALXO,D>1O+( 7O]TU]Q%O
M,@5OF@W 'W'L:^II?PX^A]EAOX,?1%PU^57B3Y?B?XF'_42NA_Y%:OU5-?E7
MXL^7XK^*%Z8U2[_]'-6T=SI.=U"Q,[%^A'>NU^%N(_B7H2A<?3O\AK$ 0Q-D
M$''6MCX9L!\3]"R>LNW_ ,=-377[N7H<N(UI2]&?65L#]F3\?YU3TE<_&73C
MZ:1/_P"ABM"W7_1U_'^=9$>J:7HOQ4L+W5KZ*RM_[+E3S)6P,EQQ7SN#_C1/
MF,)_&B>1Q!1K6K[F _TI^I_VC4[M'C.]3^->B3^'O@I<W,MQ+XH!DE8NV+CN
M3DTS_A%O@G_T,;'_ +>#7V*J'U#C<\]W1[1\Z_G3E,>?]8O_ 'T*[_\ X1CX
M(CKXA;_P(/\ A33X;^!P_P"9@/\ X$&CV@<AYKJ&PRV&UE;_ $I.ASWKU?Q$
M,?'C3/?0G_\ 0EJC'H7P/AD21/$!W(P8'SSU'-.U'6M(USXW:;=:+?1WENFD
M2Q%T/0@KP:\_&RO1D<V+5J,O0W=5=XM&OI(CB1+>1E/N%.*^/8]8N(X4;[5*
M\XD+%&Y7&/YYK['O_EL+D[=V(G./7Y37Q3##:2+))),4D"L0,<9["O%P6TSS
M,"DXSOY'U]I$KS>']/N)C\\EM&S9[DJ*U[+P_<:G9RWGVQ;6 ,8U+GEV R0
M/0=ZYO2KZ-O#NFR2'9FVBRO=1M%;^@^*9[9I(8X&DLA(K*0VTKR-W;G.,$>E
M<"A'VC]IL>&YTHU^2;W,2[T;5;"]GMM0NMKJ1A4.1@\@Y[Y%<]X@\VWTZ>,L
M'29" .ZX/6NTUF^O-9U:ZOI6C3S&^3:N-JC@#'TKE]:M4BT._D9FDE,1R['G
M_P"M6%2W/H]#AE%.K^[O:^[(/V?TAF_:3U/[1;H[KICO&6&2C#RAD>^"?SK[
M5[U\5_L^#'[2=_GDG2I#^D5?:G>OK*7\./HC]&PW\*/HAU?E=XY7R_B_XJ7_
M *BES_Z,:OU1K\LOB,OE_&?Q:/\ J)W'_H9K9;G29B2[867;NXK8^&N[_A9F
M@NJD_OAT[<&L")UV%F'!%;WP^?9\1_#;1DJKSA3SUZT5OX<O0YJ_\.7H?7MO
MG[*GX_SKR;XO6Z3:AISNK,4A(X' RQKU>%ML"=>_\ZP_$?@_3?%3P-?W=]!Y
M*E0+6;8&&<\\<U\KAZL:552D?(X:M&E64Y;(^:5C_P!)?]WA0?3K6+JFI7EG
MJ:I'%)+"4^ZO'.:^D/\ A3GA7<";[5S];K_ZU1W'P?\ !5O;R7-S=ZG'%&"[
MNUUP!Z]*]O\ M"F]KGT/]HT7W/F<Z[=G_EQG_P"^O_K5:T_4KBZO%ADMI8QC
M=N8Y'\J]XM_ 'PMO'9+35M3N75=S+%.[$#U.%K1L?A'X U.T6\L+[4YX"2 Z
MW1QD=>U5+&QCK)/[BWF%..K37R/% OS9Q7>_"V)E\=Q2'H;:91CZ+7;'X+^#
ME/\ KM5Q_P!?9_PK6\/_  ]\/>&-5_M/36O7N/+:,?:+@R* <9P/7BN6OCJ=
M2FX*^IQXG,*-2E*$;W9TSXQS61X-^ ?P_P!:U>/Q1/8WHEMKQIGL6.+6X[@
M'J >2,^U6-0G*D1JRJS<+N. 3V&>V:M-XJUC4/"T.CV\IL%@D7]_%\LN%YV^
M@Y[]ZX<)45%N4]OS/,P=;ZNW*>S_ !.<\::]I.H?%.]T_2;(6/V-/(E23Y/,
M?^\$[#^=6(HE@@2)1PHQ^/>N8OO!<FH^.;CQ5>:M/+/.VYU89).,=?3_ .M7
M6E<*!Z5SXJI"<KPZGG8F-.59U8=2!^!6+X@_Y%V__P"N1K:>L7Q!_P B[J'_
M %Q-<:W,H[HJ_L^<_M(WG_8(<_I%7VE7P)\+_%DG@WXZ3ZLNBW>K0?V=Y=RE
MHNZ2"':C-+CN%VC(]#7WA:W$-_9PW$#;H9T61#C&5(R*^SH_PX^A]_AOX4?1
M%VORY^*2^7\</& ZG^T9B!TSS7ZC5^77QA_=?';Q>%[:A(?Y5LCI.,B>XEX6
M"3:O49&<=_K71?#^2W7XB:#Y,C&-+T<N,'K7-6\L:DW#2J#G&-W.*V_!MD)?
M&N@V]Y"#;W=PJD!OO(3@\CI45'>#,*R_=R]#[5MANM$8$%3G!'.>:EQ^%0:5
M:06.D6UC:IL@MT\N-<YP!TYJYMKY"Q\/;L1"JNJ6(U31;S33)Y0N8C'OQG;G
MO6_8Z*ESHT&H27LP>6,2,%B7 ]OUJVWARW5HXQ>7 $C$',:\G&>*]&.$JJTD
M>C'!U=)(\ETOP#=Z._FV.L1Q3E&C,HC;<5/4?>Q72>&=#_X1S04TO[3]HVR/
M(9-N,[CGI71ZA9)87BV\;R,IC5_W@ (SGCBJAZ5EB*U1_NYO8PQ%2HVZ=1[#
M&:L>XURQBN)+<S#,8RY'85!K.JLK_8+,[KANK=D%<];6MQ=SFTT]R%8$3SD9
M# ]1SV]N]>:JL5-)['F*M%5$GL=[J&I6=YI46E:1#B%L/-<N@W$^@K/CMTAA
M6&-<*HQ7.>*_%6F^!=!CC ^T7\B;;:W)Y8_WV]%__57BTGQ1\<,Q;^V N3G"
MPI@?I7J1P]3$>\M%T/9CA:N)]Y:+H?1+1]:@9:^>3\3O&W_09_\ (*?X4V/X
MG^-$F21]46558$H\2X8>AP*;RRKW17]DUNZ/?I!6'XB_Y%S4/^N+4>&_%&G^
M*M*^U6O[N>/ GMSUC;^H/8T[Q /^*=U#_KBU>9*$H2Y9;GD2A*G/EDK-'#_#
M'1_$'B#XUZEI/AO6+?2+NYT5TDGN+?SU\ID16 7(YY&#VQ7W3H]@VF:#8::T
MGG-:V\<!DQC?M4#/Z5\+_"WQ4W@[XYW&KKH5_K2KH[*]OIZJTBKL1B^&(& %
MYYK[ML;^'4-&M=2VE8;F%)E#=0& (_G7V%'^''T/N\-_!CZ(TJ_,#XR+CX^>
M+_\ K_?^0K]/Z_,'XT\?'[Q?C_G^;_T$5LCI/-KZ)5<,@Y[X[UTG@.0#QUX;
MY.Y;R,$?\"K+*+)'TY]ZU?!\+Q^-?#L^W"-?Q 'W#C/\ZBI\+,JW\.7H?;\
M_P!&3\?YU(V,'Z4V#_CW7\?YTXU\F?$?:.DLQ&NEZ8(I[=0L*B9'90,8_GFK
M0DMOMSLUY;FV(X!==RMWQ[5QC*,TTJ,UZ2S"2^R>JLPDE;E+FK&;^U0?.CFB
M\K"LA!/WCC./:N9UG56MU%G:?-=R],?P#UJ;5-26Q1881YEU+Q&@_F?:L"SL
M9K^=]LA96/[^Y_O?[*^U>-B*SJ3;6[/ Q6(=6HVMV5[6SEO)3:VK;@W^OG/?
MV^G\ZZ^TLX;.W6"!=JCJ>Y/J:=:VL-K (8$"*/U^M3&HA#E,Z=/EU9X+\;^/
M%.F?]>9_]#->4DUZM\<?^1ITO_KS/_H9KR8D5]=@_P"#$^\P'^[Q&G?Y?WAO
M]<<4A-*6IA-=AWGJOP:YO-:/_3.+^9KT7Q$K-X:U-4;:QMWPW7!Q7G'P8;_3
MM:7_ *91G]37I>O<Z!J'_7!OY5\KCO\ >'\CXO,O]Y?R/,?A[H?C#6OC/'I'
MAG5H;'4+C3#'=7<L88+;L@60A>YP1BOT TFQ73-'LM,C8NEI D"LW5@J@9_2
MOC;]G_\ Y.9_[@C?^@I7VM7T5'6G'T/JL*[THOR):_,3XX#;^T%XO7_I]/\
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
MU"J/P%6.U=:22LCT(Q45RH6BBBF4%%%% !1110 4444 %%%% !1110 4444
/%%%% !1110 4444 ?__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>19
<FILENAME>tomz_10kimg4.jpg
<TEXT>
begin 644 tomz_10kimg4.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" "> *H# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
MU5[8D1M_O1M\I_+\:R-0\1:_X8\2BXURSAN-.N56(S6RD=,\C/0\D[3P>QH
MVI;5XYA#)M5R,XW4D,.>U:CS:;>6T6I0S1R)*G[J3=@-GIQZU66/:V2O3M2&
MB-8B657#;,\[15755622-HU<*)-HW#!XS6GE=O0U#=?O!"NWCS!U_P!UJ0SZ
M+\,_NO"OP[;IB(_^U*]Z7[RUX/I?[CP?X$;^[&/_ &I7N\9RR_2O H/_ &B:
M\T=M=?NX/R9:HHHKZ$X HHHH _.OXJXA_:6\8L?XG;^0KG/G^^K@CN#6Q\6K
MRVO/V@O%=U93I<0M(RK)&<J2#@\^Q!%0Z5_84UI%;ZG?7]M('._[/$K@*1P1
MG'.:=[(#/\P!>1UXJ2(\Y7O2WHM%O)EM'DDMDD(B>5<.R^X'0U&I(;Y>E6!*
M^,_XU2G$@#21X+*<C(XZU:W%G-=QX=T72KSX9^(=5N[%)[R#>(I6)S'A 1@
M^IH).'U#2=/F\1VFGVMK'&8E^U7$HX$:CA>.F2>?PJ])<R/$;2Q40;8SY:@]
M%]#Z$\YK/LYS))K-UN_?3W0@7V1 !_.JT=Y=6VI7,;Q$+GA\=1VK,HN6%NN5
M\FU;[4K;<,,FMG5+3[38V-K)"C.L>"!@8Y/2L_,\]L5$BY(^< X+>W%(L DT
M>&UDXECSM[D DX]Q0!G?V:FG>9=EI8EC)VQK\ID;T]@/6M;3+ZV\1:7-H^JQ
MARZ%>>O']1UHV7,^E/#=CS)H3B.5AAF7T/\ C7/V\5Q8ZU#-M"@L.=P]>GY9
MH W/#ND:7:PR6LEC']OT^<1O(<DL"05D&>F0>W<&O3KO1-*%K<2VZ7%N\:EE
M4D.I(]^#7G#2-'XP1ONBZM'#8/4QL&!_)C7:Z?)<7<6KR37MQ(D,:&)#)\OS
M#G/K7=04)*49*^APXEU(N$HNRO8SO+XX/-5;I6W6X) 'F_\ LK5>Z=*I7Y"B
MW)'_ "T_+Y6KSCT4CZ&AX\">"&[>4N/S>O=;=MUO'_NBO$=/T[4-1^'G@S[#
M9S3"*S^T.Z1EEPC$E>/XCG@=Z]IL^;.)F4H2BDJPP1QT->/0HU(8B=22T=K>
M9V5ZD94813U5_P S0HHHKVS@"L;Q)(\7A75Y8W\MTLYF5LXVD(<'/:MFL7Q(
M"WA36%169C9S !!DD[#T]Z /RVTEO,U*1F8 !"N2V>Y[UU]I!X4>19=62\EN
M#C<8+@(N*X[1?*2\E>0*P((P4/KUQBMBW\E%D\R,8,C'_5GH>G:HG#GC:[7H
M14ASJU[&S>/I7VIUTMGCM.-JS2!G'KS35DC53ME4_P# A5,-9XX0?]^C_A2A
MK3'W5 ]XS_A6D5RI*XTK*Q:W1Y.V1/\ OH5T^E>+K32_ >L:#):R32WA9DEC
MD4*I*A>1WKC&:US\JJ?^ '_"HF$)7:NP%F R5(Q^E443VK-%/JL)_P"6%SY^
M.^UL'/\ .GZBDD7[R&[DCC.,*3D >HXJOJUW%IFHP:MG,3?Z-<*!D.AY!STR
M.:UQ:KJ&FB&%1,B*&C=#DLM0!6CB::VC;SR9@#S&V-U.ADN9M,DAF+O(K%22
M/F9>V3WJI-;31QF/RV11]QD/(_&FVMQ=265RLTYWPMC>0 V#ZF@#16%TTV?J
M[OC<I.=JCUK+TVS\S6(0J8V\L1V_R,U);1W?VA)K-M[]'#<@CWK7MOL^E6T^
ML7LB1VZ9.!R)&[ >H_K@4 6&C\WQBBQK_P >UHWF'K\TC  ?D#7H-CINH65G
MK"W%A/$K1)M+1D# '//M7G_ANYM+JS.H?:HY+S4)EF=<\J 0%09ZX'IW)KW2
M*SDU2\334N/+-VXAWGY@NXXSCOUKT\+34E.7D>5BZS3A#SO]QYF&5NCJ?Q%4
M-5=?+MUW DRYX/\ LFO7_&GP;U/P?X+U+Q-'X@M[Z/3H6GEA>'R=R 9.#DC/
ML<?6O'I8]1N=,M;R*&&XBN5R\<$Z$P^S$@#/?@GI7DGKPU/MGX6_\DH\.?\
M7HO\S795YY\/;S2+'P;I6FZ3)>:DL=NB/-'&[1Y[\DD+SG@'\*]#IDA1115
M%%%% 'YH>/IM(M_C3XH%G!'I=FMY*BV[G&PAR#],G)QVS62VHZ=MXOH#V^^*
M^ZO''P!^'?C[Q"NOZUILT5\6!G>VDV"X [-P?S&#5$?LN?!$?\RBQ^M]/_\
M%TT[ ?$2ZCIHZWL/'3]X*:VI:<?^7R'_ +[%?<L?[,OP3A^[X+1O]^[F;^;U
M/)^SG\&9+:6 >";:/S%*[TEDW+GN#NX-.X'PD-0TW/\ Q^Q9_P!\4^.XM9[N
M.&*YB9LAQ@Y)P>E?;VB_LX_"W2_#":5=>&;+4[M%=?MUS%^\8DDJ3@XR 0/P
MJMX;_9K^%^C>&+?2[[15U+45CQ)JC,R3,Y_B7!PN.PY]\\TK@?*K:3%J%E+;
M7$9DCE7YD/<=B/>N7L](U;0+R6TTZ9;V%#YJPNVQMI[ ]F&/H<U]T+^S_P""
M8P1'=:J@/7$R?_$5E+^SCX)76;K4!J&K#[0B*4$R<$9R<[>_'  Z>](#Y 75
M[&27R[^:6PF_B2[38?\ OKH?UJ>)M)6*:=[B.3YPN4==I'J>V.:^QF_9W\$L
MI5K[5F4]0TR$?^@5$O[-OP]1@R&]# YR/)_^-T ?(?VS3Y@(-+M)-58?P01[
M(!_O-P"/Q_"L67P_K'B;Q-+!KMY'%8V:QOY%N>H89 'Y$9_*ON!OV?\ P>PP
M=3UC'IYZ<?\ CE5/^&=/!:WKWB:EK"S.@C+>=&?E!R!RGK0!\P V-H]OIL*I
M$(]HBB5>%';Z5[+H>/\ A)M.VG!^U1_^A"N[7]GOP7]LBNI+[5)GC(.&DC&X
M ]#A,UVEK\/?#-I>1W<=JYEB<2*6D)&0<BNVAB(THR3ZGFXG"RJSA*+V-;Q#
MH-CXH\+ZCX>U16>QU&W>WF"-M.UAC@]C7Q+J'A.\^'/B?5?"-Y-/>:=;7"M!
M<"+#*C+E3M[JV3R.-RL!Z5][]JYCQ!X.\,^*&B;7]&@OI805CE;*R(#U =2&
M /IG%<+5STXZ'E?[/K:A9V^NZ.TTDNE6WDRPAR2(97WET&>GRA&*CINS_%7O
M=8>D:'I/A_2X],T73X;"SC)*Q0(%&2<DGU)/4GDUMBA*R!ZBT444Q!1110 4
J444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771198064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Mar. 07, 2023</div></th>
<th class="th"><div>Jun. 30, 2022</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>
<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">TOMI ENVIRONMENTAL SOLUTIONS, INC.<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_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000314227<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_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<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_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<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_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<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_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<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_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well Known Seasoned Issuer</a></td>
<td class="text">Yes<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_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<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_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<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_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<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_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<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_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2022<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_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<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_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<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_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2022<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_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,823,955<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_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,235,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_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<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_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<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_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">000-09908<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_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation State Country Code</a></td>
<td class="text">FL<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_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">59-1947988<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_dei_EntityAddressAddressLine1', window );">Entity Address Address Line 1</a></td>
<td class="text">8430 Spires Way<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_dei_EntityAddressCityOrTown', window );">Entity Address City Or Town</a></td>
<td class="text">Frederick<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_dei_EntityAddressStateOrProvince', window );">Entity Address State Or Province</a></td>
<td class="text">MD<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_dei_EntityAddressPostalZipCode', window );">Entity Address Postal Zip Code</a></td>
<td class="text">21701<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_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">800<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_dei_IcfrAuditorAttestationFlag', window );">Icfr Auditor Attestation Flag</a></td>
<td class="text">false<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_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Somerset, NJ<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_dei_AuditorFirmId', window );">Auditor Firm Id</a></td>
<td class="text">89<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_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">525-1698<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_dei_Security12bTitle', window );">Security 12b Title</a></td>
<td class="text">Common Stock, par value $0.001 per share<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_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TOMZ<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_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<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_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<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_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">Rosenberg Rich Baker Berman, P.A.<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_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_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</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-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorFirmId</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:nonemptySequenceNumberItemType</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_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorLocation</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:internationalNameItemType</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_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorName</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:internationalNameItemType</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_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 annual 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-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_DocumentAnnualReport</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_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_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_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_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</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_EntityPublicFloat</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: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_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_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</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_EntityVoluntaryFilers</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_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</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 Securities Act<br> -Number 230<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_EntityWellKnownSeasonedIssuer</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_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_IcfrAuditorAttestationFlag</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_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>21
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777315600">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_CashEquivalentsAtCarryingValue', window );">Cash and Cash Equivalents</a></td>
<td class="nump">$ 3,866,733<span></span>
</td>
<td class="nump">$ 5,317,443<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_AccountsReceivableNetCurrent', window );">Accounts Receivable - net</a></td>
<td class="nump">2,772,340<span></span>
</td>
<td class="nump">1,964,776<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_OtherReceivablesNetCurrent', window );">Other Receivables</a></td>
<td class="nump">164,150<span></span>
</td>
<td class="nump">235,904<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 (Note 3)</a></td>
<td class="nump">4,495,999<span></span>
</td>
<td class="nump">4,743,280<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_DepositsAssetsCurrent', window );">Vendor Deposits (Note 4)</a></td>
<td class="nump">447,052<span></span>
</td>
<td class="nump">288,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_PrepaidExpenseCurrent', window );">Prepaid Expenses</a></td>
<td class="nump">388,359<span></span>
</td>
<td class="nump">343,573<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_AssetsCurrent', window );">Total Current Assets</a></td>
<td class="nump">12,134,633<span></span>
</td>
<td class="nump">12,893,562<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_PropertyPlantAndEquipmentNet', window );">Property and Equipment - net (Note 5)</a></td>
<td class="nump">1,335,331<span></span>
</td>
<td class="nump">1,488,319<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_OtherAssetsAbstract', window );"><strong>Other 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_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets - net (Note 6)</a></td>
<td class="nump">1,025,736<span></span>
</td>
<td class="nump">956,284<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_OperatingLeaseRightOfUseAsset', window );">Operating Lease - Right of Use Asset (Note - 7)</a></td>
<td class="nump">528,996<span></span>
</td>
<td class="nump">583,271<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_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers', window );">Capitalized Software Development Costs - net (Note 8)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">10,476<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">475,103<span></span>
</td>
<td class="nump">341,006<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_OtherAssets', window );">Total Other Assets</a></td>
<td class="nump">2,029,835<span></span>
</td>
<td class="nump">1,891,037<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_Assets', window );">Total Assets</a></td>
<td class="nump">15,499,799<span></span>
</td>
<td class="nump">16,272,918<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_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="re">
<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">1,761,750<span></span>
</td>
<td class="nump">1,054,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_AccruedLiabilitiesAndOtherLiabilities', window );">Accrued Expenses and Other Current Liabilities (Note 13)</a></td>
<td class="nump">728,703<span></span>
</td>
<td class="nump">664,608<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_CustomerDepositsCurrent', window );">Deferred Revenue</a></td>
<td class="nump">699,732<span></span>
</td>
<td class="nump">6,000<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 );">Current Portion of Long-Term Operating Lease</a></td>
<td class="nump">100,282<span></span>
</td>
<td class="nump">91,775<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">3,290,467<span></span>
</td>
<td class="nump">1,816,423<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_LiabilitiesNoncurrentAbstract', window );"><strong>Long-Term 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_OperatingLeaseLiabilityNoncurrent', window );">Long-Term Operating Lease, Net of Current Portion (Note 7)</a></td>
<td class="nump">761,132<span></span>
</td>
<td class="nump">861,415<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_LiabilitiesNoncurrent', window );">Total Long-Term Liabilities</a></td>
<td class="nump">761,132<span></span>
</td>
<td class="nump">861,415<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_Liabilities', window );">Total Liabilities</a></td>
<td class="nump">4,051,599<span></span>
</td>
<td class="nump">2,677,838<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>Shareholders' 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; par value $0.01 per share, 250,000,000 shares authorized; 19,763,955 and 16,761,513 shares issued and outstanding at December 31, 2022 and December 31, 2021, respectively.</a></td>
<td class="nump">197,640<span></span>
</td>
<td class="nump">196,810<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">57,673,559<span></span>
</td>
<td class="nump">56,941,209<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">(46,423,637)<span></span>
</td>
<td class="num">(43,543,577)<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 Shareholders' Equity</a></td>
<td class="nump">11,448,200<span></span>
</td>
<td class="nump">13,595,080<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 Shareholders' Equity</a></td>
<td class="nump">15,499,799<span></span>
</td>
<td class="nump">16,272,918<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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Cumulative Convertible Series A Preferred Stock</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_StockholdersEquityAbstract', window );"><strong>Shareholders' Equity:</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_PreferredStockValue', window );">Cumulative Convertible Series A Preferred Stock; par value $0.01 per share, 1,000,000 shares authorized; 63,750 shares issued and outstanding at December 31, 2022 and December 31, 2021</a></td>
<td class="nump">638<span></span>
</td>
<td class="nump">638<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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Cumulative Convertible Series B Preferred Stock</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_StockholdersEquityAbstract', window );"><strong>Shareholders' 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_PreferredStockValue', window );">Cumulative Convertible Series A Preferred Stock; par value $0.01 per share, 1,000,000 shares authorized; 63,750 shares issued and outstanding at December 31, 2022 and December 31, 2021</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<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_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nor invoiced, and liabilities classified as 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;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<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>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<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_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unamortized costs incurred for development of computer software, which is to be sold, leased or otherwise marketed, after establishing technological feasibility through to the general release of the software products. Excludes capitalized costs of developing software for internal use.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<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_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers</td>
</tr>
<tr>
<td style="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_CashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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. Excludes cash and cash equivalents within disposal group and discontinued operation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="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_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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CustomerDepositsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current portion of money or property received from customers which is either to be returned upon satisfactory contract completion or applied to customer receivables in accordance with the terms of the contract or the understandings.</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/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CustomerDepositsCurrent</td>
</tr>
<tr>
<td style="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_DepositsAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment within one year or during the operating cycle, if shorter.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_DepositsAssetsCurrent</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6904-107765<br><br>Reference 21: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_LiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(26))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<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_LiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="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_LiabilitiesNoncurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LiabilitiesNoncurrentAbstract</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_OtherAssets</td>
</tr>
<tr>
<td style="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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_OtherReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, of receivables classified as other, due within one year or the 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_OtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="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_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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_PreferredStockValue</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6387103&amp;loc=d3e6435-108320<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 05<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126905020&amp;loc=d3e5879-108316<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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>
<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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>The cumulative amount of the reporting entity's undistributed earnings or 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<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>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</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>22
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777290304">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_StockholdersEquityAbstract', window );"><strong>Stockholders' Equity:</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_CommonStockParOrStatedValuePerShare', window );">Common Stock; Par Value</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<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_CommonStockSharesAuthorized', window );">Common Stock; Shares Authorized</a></td>
<td class="nump">250,000,000<span></span>
</td>
<td class="nump">250,000,000<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_CommonStockSharesIssued', window );">Common Stock; Shares Issued</a></td>
<td class="nump">19,763,955<span></span>
</td>
<td class="nump">19,680,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_CommonStockSharesOutstanding', window );">Common Stock; Shares Outstanding</a></td>
<td class="nump">19,763,955<span></span>
</td>
<td class="nump">19,680,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_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Cumulative Convertible Series A Preferred Stock</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_StockholdersEquityAbstract', window );"><strong>Stockholders' Equity:</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_PreferredStockParOrStatedValuePerShare', window );">Cumulative Convertible Preferred Stock; Par Value</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<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_PreferredStockSharesAuthorized', window );">Cumulative Convertible Preferred Stock; Shares Authorized</a></td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,000<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_PreferredStockSharesIssued', window );">Cumulative Convertible Preferred Stock; Shares Issued</a></td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<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_PreferredStockSharesOutstanding', window );">Cumulative Convertible Preferred Stock; Shares Outstanding</a></td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Cumulative Convertible Series B Preferred Stock</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_StockholdersEquityAbstract', window );"><strong>Stockholders' Equity:</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_tomz_PreferredStockParOrStatedValue', window );">Cumulative Convertible Preferred Stock; Stated Value</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,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_PreferredStockSharesAuthorized', window );">Cumulative Convertible Preferred Stock; Shares Authorized</a></td>
<td class="nump">4,000<span></span>
</td>
<td class="nump">4,000<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_PreferredStockSharesIssued', window );">Cumulative Convertible Preferred Stock; Shares Issued</a></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_PreferredStockSharesOutstanding', window );">Cumulative Convertible Preferred Stock; Shares Outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_PreferredStockParOrStatedValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_PreferredStockParOrStatedValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="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_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maximum number of common shares permitted to be issued by an entity's charter and bylaws.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="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_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="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_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of common stock outstanding. Common stock represent the ownership interest in a corporation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<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_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="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_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="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_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<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_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="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_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</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>23
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777576432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_IncomeStatementAbstract', window );"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</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_Revenues', window );">Sales, net</a></td>
<td class="nump">$ 8,338,099<span></span>
</td>
<td class="nump">$ 7,753,582<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_CostOfRevenue', window );">Cost of Sales</a></td>
<td class="nump">3,277,644<span></span>
</td>
<td class="nump">3,166,891<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_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">5,060,455<span></span>
</td>
<td class="nump">4,586,691<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_CostsAndExpensesAbstract', window );"><strong>Operating Expenses:</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_ProfessionalFees', window );">Professional Fees</a></td>
<td class="nump">536,311<span></span>
</td>
<td class="nump">538,093<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_DepreciationAndAmortization', window );">Depreciation and Amortization</a></td>
<td class="nump">329,164<span></span>
</td>
<td class="nump">294,665<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_SellingExpense', window );">Selling Expenses</a></td>
<td class="nump">1,867,013<span></span>
</td>
<td class="nump">1,674,466<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">352,238<span></span>
</td>
<td class="nump">572,700<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_tomz_ConsultingFees', window );">Consulting Fees</a></td>
<td class="nump">215,180<span></span>
</td>
<td class="nump">326,614<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_OtherGeneralAndAdministrativeExpense', window );">General and Administrative</a></td>
<td class="nump">4,642,548<span></span>
</td>
<td class="nump">6,104,363<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">7,942,454<span></span>
</td>
<td class="nump">9,510,901<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="num">(2,881,999)<span></span>
</td>
<td class="num">(4,924,210)<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_OtherIncomeAbstract', window );"><strong>Other Income (Expense):</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_GainsLossesOnExtinguishmentOfDebt', window );">Gain Upon Debt Extinguishment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">414,583<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_InterestIncomeOther', window );">Interest Income</a></td>
<td class="nump">1,939<span></span>
</td>
<td class="nump">1,076<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_InterestExpense', window );">Interest Expense</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,034)<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_NonoperatingIncomeExpense', window );">Total Other Income (Expense)</a></td>
<td class="nump">1,939<span></span>
</td>
<td class="nump">414,625<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="num">(2,880,060)<span></span>
</td>
<td class="num">(4,509,585)<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 );">Provision for Income Taxes (Note 16)</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(74,086)<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="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,435,499)<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_EarningsPerShareAbstract', window );"><strong>Net income (loss) Per Common Share</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_EarningsPerShareBasic', window );">Basic</a></td>
<td class="num">$ (0.15)<span></span>
</td>
<td class="num">$ (0.25)<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</a></td>
<td class="num">$ (0.15)<span></span>
</td>
<td class="num">$ (0.25)<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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic Weighted Average Common Shares Outstanding</a></td>
<td class="nump">19,743,544<span></span>
</td>
<td class="nump">17,538,994<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted Weighted Average Common Shares Outstanding</a></td>
<td class="nump">19,743,544<span></span>
</td>
<td class="nump">17,538,994<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ConsultingFees">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Consulting Expenses incurred during the 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;">tomz_ConsultingFees</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CostOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost of goods produced and sold and services rendered 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<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_CostOfRevenue</td>
</tr>
<tr>
<td style="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_CostsAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CostsAndExpensesAbstract</td>
</tr>
<tr>
<td style="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_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_GainsLossesOnExtinguishmentOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12355-112629<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12317-112629<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_GainsLossesOnExtinguishmentOfDebt</td>
</tr>
<tr>
<td style="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_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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941158&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<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_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the cost of borrowed funds accounted for as interest 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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_InterestExpense</td>
</tr>
<tr>
<td style="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_InterestIncomeOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 interest income earned from interest bearing assets classified as 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;">us-gaap_InterestIncomeOther</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="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>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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<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_OtherGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 general and administrative expense 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_OtherGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="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_OtherIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherIncomeAbstract</td>
</tr>
<tr>
<td style="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_ProfessionalFees">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fee charged for services from professionals such as doctors, lawyers and accountants. The term is often expanded to include other professions, for example, pharmacists charging to maintain a medicinal profile of a client or customer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07.2(a),(b),(c),(d))<br> -URI https://asc.fasb.org/extlink&amp;oid=120401555&amp;loc=SL114874292-224272<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 220<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (k)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433917&amp;loc=SL114874205-224268<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_ProfessionalFees</td>
</tr>
<tr>
<td style="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_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>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_Revenues</td>
</tr>
<tr>
<td style="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_SellingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expenses recognized in the period that are directly related to the selling and distribution of products or 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_SellingExpense</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<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>24
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771215584">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)<br></strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Series A Preferred Stock</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Additional Paid-In Capital</div></th>
<th class="th"><div>Retained Earnings (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_SharesIssued', window );">Balance, shares at Dec. 31, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">16,761,514<span></span>
</td>
<td class="text">&#160;<span></span>
</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, amount at Dec. 31, 2020</a></td>
<td class="nump">$ 13,202,574<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 167,616<span></span>
</td>
<td class="nump">$ 52,142,398<span></span>
</td>
<td class="num">$ (39,108,078)<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_tomz_EquityCompensation', window );">Equity Compensation</a></td>
<td class="nump">18,354<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18,354<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_tomz_CommonStockIssuedForServicesProvidedShares', window );">Common Stock Issued for Services Provided, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50,000<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_tomz_CommonStockIssuedForServicesProvidedAmount', window );">Common Stock Issued for Services Provided, amount</a></td>
<td class="nump">228,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500<span></span>
</td>
<td class="nump">227,500<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_StockIssuedDuringPeriodSharesNewIssues', window );">Common Stock Issued in Private Placement, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,869,442<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_StockIssuedDuringPeriodValueNewIssues', window );">Common Stock Issued in Private Placement, amount</a></td>
<td class="nump">4,581,651<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 28,694<span></span>
</td>
<td class="nump">4,552,957<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 (Loss)</a></td>
<td class="num">(4,435,499)<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="num">(4,435,499)<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_SharesIssued', window );">Balance, shares at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">19,680,956<span></span>
</td>
<td class="text">&#160;<span></span>
</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, amount at Dec. 31, 2021</a></td>
<td class="nump">13,595,080<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 196,810<span></span>
</td>
<td class="nump">56,941,209<span></span>
</td>
<td class="num">(43,543,577)<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_tomz_EquityCompensation', window );">Equity Compensation</a></td>
<td class="nump">653,843<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">653,843<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_tomz_CommonStockIssuedForServicesProvidedShares', window );">Common Stock Issued for Services Provided, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">51,750<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_tomz_CommonStockIssuedForServicesProvidedAmount', window );">Common Stock Issued for Services Provided, amount</a></td>
<td class="nump">54,338<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 518<span></span>
</td>
<td class="nump">53,820<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 (Loss)</a></td>
<td class="num">(2,880,060)<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="num">(2,880,060)<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_tomz_WarrantsAndOptionsExercisedShares', window );">Warrants and Options Exercised, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,250<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_tomz_WarrantsAndOptionsExercisedAmount', window );">Warrants and Options Exercised, amount</a></td>
<td class="nump">25,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 312<span></span>
</td>
<td class="nump">24,687<span></span>
</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_SharesIssued', window );">Balance, shares at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">19,763,956<span></span>
</td>
<td class="text">&#160;<span></span>
</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, amount at Dec. 31, 2022</a></td>
<td class="nump">$ 11,448,200<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 197,640<span></span>
</td>
<td class="nump">$ 57,673,559<span></span>
</td>
<td class="num">$ (46,423,637)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CommonStockIssuedForServicesProvidedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CommonStockIssuedForServicesProvidedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_CommonStockIssuedForServicesProvidedShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CommonStockIssuedForServicesProvidedShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_EquityCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EquityCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_WarrantsAndOptionsExercisedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WarrantsAndOptionsExercisedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_WarrantsAndOptionsExercisedShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WarrantsAndOptionsExercisedShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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_SharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<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_SharesIssued</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodValueNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodValueNewIssues</td>
</tr>
<tr>
<td style="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_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>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<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>25
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777548768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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 Flow 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="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,435,499)<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 (Used) In 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_OtherDepreciationAndAmortization', window );">Depreciation and Amortization</a></td>
<td class="nump">329,164<span></span>
</td>
<td class="nump">294,665<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 Right of Use Asset</a></td>
<td class="nump">157,315<span></span>
</td>
<td class="nump">157,315<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_CapitalizedComputerSoftwareAmortization1', window );">Amortization of Software Costs</a></td>
<td class="nump">10,475<span></span>
</td>
<td class="nump">41,902<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_tomz_EquityCompensationExpense', window );">Equity Compensation Expense</a></td>
<td class="nump">653,843<span></span>
</td>
<td class="nump">18,354<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_IssuanceOfStockAndWarrantsForServicesOrClaims', window );">Value of Equity Issued for Services</a></td>
<td class="nump">54,338<span></span>
</td>
<td class="nump">228,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_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease', window );">Reserve for Bad Debt</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,288,000<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_InventoryLIFOReservePeriodCharge', window );">Inventory Reserve</a></td>
<td class="nump">95,000<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_GainsLossesOnExtinguishmentOfDebt', window );">Gain Upon Debt Extinguishment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">414,583<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_tomz_DecreaseIncreaseInAbstract', window );"><strong>Decrease (Increase) in:</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</a></td>
<td class="num">(807,564)<span></span>
</td>
<td class="nump">463,925<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 );">Inventory</a></td>
<td class="nump">152,281<span></span>
</td>
<td class="num">(961,765)<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_IncreaseDecreaseInPrepaidExpense', window );">Prepaid Expenses</a></td>
<td class="num">(44,786)<span></span>
</td>
<td class="nump">77,732<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_IncreaseDecreaseInDeposits', window );">Vendor Deposits</a></td>
<td class="num">(158,466)<span></span>
</td>
<td class="nump">100,126<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_IncreaseDecreaseInOtherReceivables', window );">Other Receivables</a></td>
<td class="nump">71,754<span></span>
</td>
<td class="num">(36,953)<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_IncreaseDecreaseInOtherOperatingAssets', window );">Other Assets</a></td>
<td class="num">(177,474)<span></span>
</td>
<td class="num">(100,149)<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_tomz_IncreaseDecreaseInAbstract', window );"><strong>Increase (Decrease) in:</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_IncreaseDecreaseInAccountsPayable', window );">Accounts Payable</a></td>
<td class="nump">707,711<span></span>
</td>
<td class="num">(447,429)<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_IncreaseDecreaseInAccruedLiabilities', window );">Accrued Expenses</a></td>
<td class="nump">64,095<span></span>
</td>
<td class="nump">166,644<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_IncreaseDecreaseInCustomerDeposits', window );">Deferred Revenue</a></td>
<td class="nump">693,732<span></span>
</td>
<td class="num">(112,880)<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_tomz_IncreaseDecreaseInLeaseLiabilities', window );">Lease Liability</a></td>
<td class="num">(155,622)<span></span>
</td>
<td class="num">(151,088)<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 (Used) in Operating Activities</a></td>
<td class="num">(1,234,264)<span></span>
</td>
<td class="num">(3,823,683)<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 Flow 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_CapitalizedPatentAndTrademarkCosts', window );">Capitalized Patent and Trademark Costs</a></td>
<td class="num">(40,570)<span></span>
</td>
<td class="num">(126,697)<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_tomz_PurchaseOfPropertyAndEquipment', window );">Purchase of Property and Equipment</a></td>
<td class="num">(200,876)<span></span>
</td>
<td class="num">(512,669)<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_NetCashProvidedByUsedInInvestingActivities', window );">Net Cash (Used) in Investing Activities</a></td>
<td class="num">(241,446)<span></span>
</td>
<td class="num">(639,366)<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 Flow 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_ProceedsFromIssuanceOfWarrants', window );">Proceeds from Issuance of Stock and Warrants</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,581,651<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_ProceedsFromStockOptionsExercised', window );">Proceeds from Exercise of Options and Warrants</a></td>
<td class="nump">25,000<span></span>
</td>
<td class="nump">0<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 From Financing Activities:</a></td>
<td class="nump">25,000<span></span>
</td>
<td class="nump">4,581,651<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect', window );">Increase (Decrease) In Cash and Cash Equivalents</a></td>
<td class="num">(1,450,710)<span></span>
</td>
<td class="nump">118,602<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 - Beginning</a></td>
<td class="nump">5,317,443<span></span>
</td>
<td class="nump">5,198,842<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 - Ending</a></td>
<td class="nump">3,866,733<span></span>
</td>
<td class="nump">5,317,443<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_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental Cash Flow Information:</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_IncomeTaxesPaidNet', window );">Cash Paid (Refunded) for Income Taxes</a></td>
<td class="num">(72,086)<span></span>
</td>
<td class="nump">75,000<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_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Non-Cash Investing and 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets', window );">Patent and trademark costs reclassified from Other Assets</a></td>
<td class="nump">$ 43,377<span></span>
</td>
<td class="nump">$ 118,078<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CapitalizedPatentAndTrademarkCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CapitalizedPatentAndTrademarkCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DecreaseIncreaseInAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DecreaseIncreaseInAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_EquityCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EquityCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_IncreaseDecreaseInAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_IncreaseDecreaseInAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_IncreaseDecreaseInLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_IncreaseDecreaseInLeaseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_PurchaseOfPropertyAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a</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;">tomz_PurchaseOfPropertyAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss on accounts 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<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_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="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_CapitalizedComputerSoftwareAmortization1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of capitalized computer software costs.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128487-111756<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_CapitalizedComputerSoftwareAmortization1</td>
</tr>
<tr>
<td style="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 equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=SL98516268-108586<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equivalents, and cash and cash equivalents restricted to withdrawal or usage; excluding effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect</td>
</tr>
<tr>
<td style="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_GainsLossesOnExtinguishmentOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12355-112629<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12317-112629<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_GainsLossesOnExtinguishmentOfDebt</td>
</tr>
<tr>
<td style="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_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4297-108586<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_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount 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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of expenses incurred but not yet paid.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInCustomerDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period in the amount of customer money held in customer accounts, including security deposits, collateral for a current or future transactions, initial payment of the cost of acquisition or for the right to enter into a contract or 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/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInCustomerDeposits</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3095-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123398031&amp;loc=d3e60009-112784<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_IncreaseDecreaseInDeposits</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInOtherReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOtherReceivables</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInPrepaidExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="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_InventoryLIFOReservePeriodCharge">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 change in the inventory reserve representing the cumulative difference in cost between the first in, first out and the last in, first out inventory valuation methods, which change has been reflected in the statement of income 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e99989-122729<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_InventoryLIFOReservePeriodCharge</td>
</tr>
<tr>
<td style="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_IssuanceOfStockAndWarrantsForServicesOrClaims">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of share-based compensation granted to nonemployees as payment for services rendered or acknowledged claims.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_IssuanceOfStockAndWarrantsForServicesOrClaims</td>
</tr>
<tr>
<td style="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_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 activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<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 activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<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 activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="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_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 amortization expense for 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_OtherDepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 charged against earnings to allocate the cost of tangible and intangible assets over their remaining economic lives, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_OtherDepreciationAndAmortization</td>
</tr>
<tr>
<td style="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_ProceedsFromIssuanceOfWarrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 issuance of rights to purchase common shares at predetermined price (usually issued together with corporate 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<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_ProceedsFromIssuanceOfWarrants</td>
</tr>
<tr>
<td style="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_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from exercise of option 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<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_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="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_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="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>26
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771195072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>DESCRIPTION OF BUSINESS<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>DESCRIPTION OF BUSINESS</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_NatureOfOperations', window );">DESCRIPTION OF BUSINESS</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 1. DESCRIPTION OF BUSINESS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">TOMI Environmental Solutions, Inc., a Florida corporation (&#8220;TOMI&#8221;, the &#8220;Company&#8221;, &#8220;we&#8221;, &#8220;our&#8221; and &#8220;us&#8221;) is a global provider of disinfection and decontamination essentials through our premier Binary Ionization Technology&#174; (BIT&#8482;) platform, under which we manufacture, license, service and sell our SteraMist&#174; brand of products, including SteraMist&#174; BIT&#8482;, a hydrogen peroxide-based mist and fog. Our solution and process are environmentally friendly as the only biproduct from our decontamination process is oxygen and water in the form of humidity. Our solution is organically listed in the United States and Canada it is sustainably a green product with no or very little carbon footprint. Our business is organized into five divisions: Healthcare, Life Sciences, TOMI Service Network, Food Safety and Commercial.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Invented under a defense grant in association with the Defense Advanced Research Projects Agency (DARPA) of the U.S. Department of Defense, BIT&#8482; is registered with the U.S. Environmental Protection Agency (EPA) and uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (<strong><sup style="vertical-align:super">.</sup></strong>OH ion), known as ionized Hydrogen Peroxide (iHP&#8482;). Represented by the SteraMist&#174; brand of products, iHP&#8482; produces a germ-killing aerosol that works like a visual non-caustic gas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our products are designed to service a broad spectrum of commercial structures, including, but not limited to, hospitals and medical facilities, bio-safety labs, pharmaceutical facilities, meat and produce processing facilities, universities and research facilities, vivarium labs, other service industries including cruise ships, office buildings, hotel and motel rooms, schools, restaurants, military barracks, police and fire departments, prisons, and athletic facilities. Our products are also used in single-family homes and multi-unit residences. Additionally, our products have been listed on the EPA&#8217;s List N as products that help combat COVID-19 and are actively being used for this purpose.</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_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -URI https://asc.fasb.org/topic&amp;trid=2134479<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_NatureOfOperations</td>
</tr>
<tr>
<td style="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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="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>27
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152858039104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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_SignificantAccountingPoliciesTextBlock', window );">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Principles of Consolidation</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The accompanying consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Reclassification of Accounts</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Use of Estimates</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The preparation of the consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to accounts receivable, inventory, fair values of financial instruments, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Fair Value Measurements</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of inputs, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Cash and Cash Equivalents</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be in excess of insured limits. At December 31, 2022 and December 31, 2021, there were no cash equivalents. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Accounts Receivable</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our accounts receivable are typically from credit worthy customers or, for certain international customers, are supported by pre-payments. For those customers to whom we extend credit, we perform periodic evaluations of their status and maintain allowances for potential credit losses as deemed necessary. We have a policy of reserving for doubtful accounts based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be in doubt. Account balances deemed to be uncollectible are charged to the allowance after all means of collection have been exhausted and the potential for recovery is considered remote.&#160; Bad debt expense for the years ended December 31, 2022 and 2021, was approximately $142,188 and $1,605,660, respectively. &#160;At December 31, 2022 and December 31, 2021, the allowance for doubtful accounts reserve was $1,678,000.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Inventories</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We expense costs to maintain certification to cost of goods sold as incurred.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable.&#160; Our reserve for obsolete inventory was $95,000 and $0 as of December 31, 2022 and December 31, 2021, respectively.</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Property and Equipment</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation for equipment, furniture and fixtures and vehicles commences once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the lives of the respective leases or service lives of the improvements, whichever is shorter.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Leases</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depends on classification as a finance or operating lease.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have also elected the practical expedient to not separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense when recognized.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Capitalized Software Development Costs</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In accordance with ASC 985-20 regarding the development of software to be sold, leased, or marketed, we expense such costs as they are incurred until technological feasibility has been established, at and after which time those costs are capitalized until the product is available for general release to customers. The periodic expense for the amortization of capitalized software development costs will be included in cost of sales. Amortization expense for the years ended December 31, 2022 and 2021, was $10,475 and $41,900, respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Accounts Payable</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, two vendors accounted for approximately 55% of accounts payable. As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2022, two vendors accounted for 67% of cost of sales. For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Accrued Warranties</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:40pt">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. As of December 31, 2022, and December 31, 2021, our warranty reserve was $68,000. (See Note 14).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Income Taxes</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes. Net deferred tax benefits have been fully reserved at December 31, 2022 and December 31, 2021. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Net Income (Loss) Per Share</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the treasury stock method and includes the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Potentially dilutive securities as of December 31, 2022 consisted of 2,792,335 shares of common stock issuable upon exercise of outstanding warrants, 413,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#8220;Convertible Series A Preferred Stock&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Potentially dilutive securities as of December 31, 2021 consisted of 3,381,021 shares of common stock issuable upon exercise of outstanding warrants, 143,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#8220;Convertible Series A Preferred Stock&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Diluted net income or (loss) per share is computed similarly to basic net income or (loss) per share except that the denominator is increased to include the number of additional shares of common stock that would have been outstanding if the potential shares of common stock had been issued and if such additional shares were dilutive. Options, warrants, &#160;and preferred stock 3.3 million and 3.6 million shares of common stock were outstanding at December 31, 2022 and 2021, respectively, but were excluded from the computation of diluted net loss per share at December 31, 2022 and 2021 due to the anti-dilutive effect on net loss per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Net Income (Loss) Per Common Share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="10" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Revenue Recognition</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606). We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Title and risk of loss generally pass to our customers upon shipment. Our Customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to bringing about resale. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Disaggregation of Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table presents our revenues disaggregated by revenue source.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,864,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,179,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">685,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,474,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,575,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(101,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Revenue by Geographic Region</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,261,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,403,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(142,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,077,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,351,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">726,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Product revenue includes sales from our standard and customized equipment, solution and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Costs to Obtain a Contract with a Customer</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Contract Balances</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, and December 31, 2021 we did not have any unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Arrangements with Multiple Performance Obligations</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Significant Judgments</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Equity Compensation Expense</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation&#8212;Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#8211;free interest rates are calculated based on continuously compounded risk&#8211;free rates for the appropriate term.&#160;The expected term of the Company's warrants has been determined utilizing the "simplified" method for awards that qualify as "plain-vanilla" warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its Common Stock and does not intend to pay dividends on its Common Stock in the foreseeable future. The expected forfeiture rate is estimated based on management&#8217;s best assessment.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On July 7, 2017, our shareholders approved the 2016 Equity Incentive Plan, or the 2016 Plan. The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of common stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of common stock for numerous reasons, including, but not limited to, shares of common stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. For the year ended December 31, 2022 and 2021, we issued 51,750 and 50,000 shares of common stock, respectively, out of the 2016 Plan.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Concentrations of Credit Risk</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Long-Lived Assets Including Acquired Intangible Assets</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the years ended December 31, 2022 and 2021.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Advertising and Promotional Expenses</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We expense advertising costs in the period in which they are incurred. Advertising and promotional expenses included in selling expenses for the years ended December 31, 2022 and 2021 were approximately $653,000 and $701,000, respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Research and Development Expenses</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2022 and 2021, research and development expenses were approximately $352,000 and $573,000, respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Business Segments</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product. A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Recent Accounting Pronouncements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In March 2022, the FASB issued ASU 2022-02, Troubled Debt Restructurings and Vintage Disclosures. This ASU eliminates the accounting guidance for troubled debt restructurings by creditors that have adopted ASU 2016-13, Measurement of Credit Losses on Financial Instruments, which we adopted on January 1, 2020. This ASU also enhances the disclosure requirements for certain loan refinancing and restructurings by creditors when a borrower is experiencing financial difficulty. In addition, the ASU amends the guidance on vintage disclosures to require entities to disclose current period gross write-offs by year of origination for financing receivables and net investments in leases within the scope of ASC 326-20. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU would be applied prospectively. Early adoption is also permitted, including adoption in an interim period. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In October 2021, the FASB issued ASU No. 2021-08, Accounting for Contract Assets and Contract Liabilities from Contracts with Customers (Topic 805). This ASU requires an acquirer in a business combination to recognize and measure contract assets and contract liabilities (deferred revenue) from acquired contracts using the revenue recognition guidance in Topic 606. At the acquisition date, the acquirer applies the revenue model as if it had originated the acquired contracts. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU should be applied prospectively. Early adoption is also permitted, including adoption in an interim period. If early adopted, the amendments are applied retrospectively to all business combinations for which the acquisition date occurred during the fiscal year of adoption. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently adopted accounting pronouncements</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In November 2021, the FASB issued ASU No. 2021-10, Government Assistance (Topic 832). This ASU requires business entities to disclose information about government assistance they receive if the transactions were accounted for by analogy to either a grant or a contribution accounting model. The disclosure requirements include the nature of the transaction and the related accounting policy used, the line items on the balance sheets and statements of operations that are affected and the amounts applicable to each financial statement line item and the significant terms and conditions of the transactions. The ASU is effective for annual periods beginning after December 15, 2021. We adopted ASU 2021-10 starting in 2022, which did not have a material impact on our consolidated financial statements.</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_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all significant accounting policies of the reporting 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18726-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI https://asc.fasb.org/topic&amp;trid=2122369<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_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152858040576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INVENTORIES<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>INVENTORIES</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_InventoryDisclosureTextBlock', window );">INVENTORIES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 3. INVENTORIES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </strong>Inventories consist of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Finished goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,929,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,293,080</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Raw Materials</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">691,999</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">377,490</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(95,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,495,999</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,743,280</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<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_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152773991392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>VENDOR DEPOSITS<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_ExtraordinaryAndUnusualItemsAbstract', window );"><strong>VENDOR DEPOSITS</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_tomz_VendorDepositsTextBlock', window );">VENDOR DEPOSITS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 4. VENDOR DEPOSITS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On December 31, 2022 and December 31, 2021, we maintained vendor deposits of $447,052 and $288,586, respectively, for open purchase orders for inventory.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_VendorDepositsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_VendorDepositsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_ExtraordinaryAndUnusualItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ExtraordinaryAndUnusualItemsAbstract</td>
</tr>
<tr>
<td style="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>30
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772585504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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_PropertyPlantAndEquipmentDisclosureTextBlock', window );">PROPERTY AND EQUIPMENT</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 5. PROPERTY AND EQUIPMENT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Property and equipment consist of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">364,819</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">357,236</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,236,510</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,688,236</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vehicles</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">60,703</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">60,703</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer and software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">246,638</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">232,017</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">393,381</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">386,120</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tenant Improvement Allowance&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">405,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">405,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Costs in Progress &#8211; Tooling and Molds</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">376,864</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,707,051</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,506,176</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated depreciation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,371,720</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,017,857</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Property and Equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,335,331</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,488,319</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">For the years ended December 31, 2022 and 2021, depreciation was $314,669 and $299,665, respectively. For the years ended December 31, 2022 and 2021, amortization of tenant improvement allowance was $39,194 and was recorded as lease expense and included within general and administrative expense on the consolidated statement of operations.</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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI https://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=SL120174063-112916<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<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_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772709008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INTANGIBLE ASSETS<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>INTANGIBLE ASSETS</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_IntangibleAssetsDisclosureTextBlock', window );">INTANGIBLE ASSETS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 6. INTANGIBLE ASSETS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Intangible assets consist of patents and trademarks related to our Binary Ionization Technology. We amortize the patents over the estimated remaining lives of the related patents. The trademarks have an indefinite life. Amortization expense was $14,495 and $11,406 for the years ended December 31, 2022 and 2021, respectively. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Definite life intangible assets consist of the following: </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Intellectual Property and Patents </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,108,063</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,065,584</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Less: Accumulated Amortization </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,882,892</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,868,397</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Patents, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">225,171</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">197,187</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Indefinite life intangible assets consist of the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Trademarks</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">800,565</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">759,097</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Total Intangible Assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,025,736</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">956,284</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Approximate future amortization is as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Approximate future amortization is as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended</strong><strong>:&#160;</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;<strong>&#160;&#160;&#160;&#160;Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">152,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">197,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all or part of the information related to 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -URI https://asc.fasb.org/subtopic&amp;trid=2144471<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_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772619216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LEASES<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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</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_LeasesOfLesseeDisclosureTextBlock', window );">LEASES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 7. LEASES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In April 2018, we entered into a 10-year lease agreement for a new 9,000-square-foot facility that contains office, warehouse, lab and research and development space in Frederick, Maryland. The lease agreement commenced in December 2018 when the property was ready for occupancy. The agreement provided for annual rent of $143,460, an escalation clause that increases the rent 3% year over year, a landlord tenant improvement allowance of $405,000 and additional landlord work as discussed in the lease agreement. We took occupancy of the property on December 17, 2018 and the lease was amended in March 2019 to provide for a 4-month rent holiday and a commencement date of April 1, 2019.&#160; A 7% discount rate was determined using used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&#160; Lease expense for operating lease payments is recognized on a straight-line basis over the lease term. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The balances for our operating lease where we are the lessee are presented as follows within our consolidated balance sheet:</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Operating leases:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Assets:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="MARGIN: 0px 0px 0px 15px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">528,996</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">583,271</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Liabilities:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">100,282</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">91,775</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, Net of Current Portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">761,132</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">861,415</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">861,414</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">953,190</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The components of lease expense are as follows within our consolidated statement of operations:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">157,315</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">157,315</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Other information related to leases where we are the lessee is as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="9"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average remaining lease term:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;6.00 years&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;7.00 years&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Discount rate:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Supplemental cash flow information related to leases where we are the lessee is as follows:</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">155,621</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">151,088</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">As of December 31, 2022, the maturities of our operating lease liability are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Operating</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lease</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">160,290</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">165,098</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">170,051</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">175,153</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">180,407</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">219,571</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total minimum lease payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,070,571</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less:&#160; Interest </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">209,156</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Present value of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">861,415</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Current portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">100,282</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term portion of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">761,132</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_LeasesOfLesseeDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing.</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/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -URI https://asc.fasb.org/topic&amp;trid=2208923<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_LeasesOfLesseeDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772645296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_CapitalizedComputerSoftwareNetAbstract', window );"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS</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_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock', window );">CAPITALIZED SOFTWARE DEVELOPMENT COSTS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 8. CAPITALIZED SOFTWARE DEVELOPMENT COSTS</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In accordance with ASC 985-20 we capitalized certain software development costs associated with updating our continuing line of product offerings. Capitalized software development costs consist of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;&#160;&#160; December 31,</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">125,704</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">125,704</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less:&#160; Accumulated Amortization </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(125,704</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(115,229</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs - net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">10,475</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Amortization expense for the years ended December 31, 2022 and 2021 was $10,475 and $41,900, respectively.</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_CapitalizedComputerSoftwareNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CapitalizedComputerSoftwareNetAbstract</td>
</tr>
<tr>
<td style="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_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 research, development, and computer software activities, including contracts and arrangements to be performed for others and with federal government. Includes costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility and in-process research and development acquired in a business combination consummated 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 730<br> -URI https://asc.fasb.org/subtopic&amp;trid=2197926<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_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772595056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CLOUD COMPUTING SERVICE CONTRACT<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_RisksAndUncertaintiesAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT</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_tomz_CloudComputingServiceContractDisclosureTextBlock', window );">CLOUD COMPUTING SERVICE CONTRACT</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 9. </strong><strong>CLOUD COMPUTING SERVICE CONTRACT</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">In May 2020 we entered into a cloud computing service contract with a vendor. The contract provides for annual payments in the amount of $30,409 and has a term of 5 years. The annual contract payments are capitalized as a prepaid expense and amortized over a twelve-month period.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We have incurred implementation costs of $66,857 in connection with the cloud computing service contract which have been capitalized in prepaid expenses and other assets as of December 31, 2022. In accordance with ASU No. 2018-15, such implementation costs are being amortized over the remaining contract terms beginning January 1, 2021, which was when the cloud-based service contract was placed in service. Amortization expense for the years ended December 31, 2022 and 2021 were $14,495 and $14,432, respectively.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CloudComputingServiceContractDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CloudComputingServiceContractDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_RisksAndUncertaintiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RisksAndUncertaintiesAbstract</td>
</tr>
<tr>
<td style="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>35
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772529344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_StockholdersEquityAbstract', window );"><strong>Shareholders' Equity:</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 );">SHAREHOLDERS' EQUITY</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 10. SHAREHOLDERS&#8217; EQUITY</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our Board of Directors (the &#8220;Board&#8221;) may, without further action by our shareholders, from time to time, direct the issuance of any authorized but unissued or unreserved shares of preferred stock in series and at the time of issuance, determine the rights, preferences and limitations of each series. The holders of such preferred stock may be entitled to receive a preference payment in the event of any liquidation, dissolution or winding-up by us before any payment is made to the holders of our common stock. Furthermore, the Board could issue preferred stock with voting and other rights that could adversely affect the voting power of the holders of our common stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Convertible Series A Preferred Stock</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our authorized Convertible Series A Preferred Stock, $0.01 par value, consists of 1,000,000 shares. At December 31, 2022 and 2021, there were 63,750 shares issued and outstanding. The Convertible Series A Preferred Stock is convertible at the rate of one share of common stock for one share of Convertible Series A Preferred Stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Convertible Series B Preferred Stock</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of 4,000 shares. At December 31, 2022 and 2021, there were no shares issued and outstanding, respectively. Each share of Convertible Series B Preferred Stock may be converted (at the holder&#8217;s election) into two hundred shares of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Common Stock</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">In January 2021, we issued 50,000 shares of common stock valued at approximately $228,000 to members of our Board (see Note 12).&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In September 2021, we sold 2,869,442 shares of common stock through a registered direct offering and issued 1,434,721 warrants to purchase common stock in a concurrent private placement. We received net proceeds from the transaction of $4,581,651, after deducting the placement agent&#8217;s fees and other estimated offering expenses. The Warrants have an exercise price of $1.68 per share, are exercisable immediately upon issuance and have a term of five years from the date of issuance. In addition, we issued 172,167 warrants to the placement agent which have a term of five years and an exercise price of $2.18 per share. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">In January 2022, we issued 51,750 shares of common stock valued at approximately $54,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Stock Options</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">&#160; In January 2022 we issued an option to purchase 172,500 shares of common stock to our Chief Executive Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $178,281 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2022 we issued an option to purchase 57,500 shares of common stock to our Chief Operating Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $59,427 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2022 we issued an option to purchase 40,000 shares of common stock to our Chief Financial Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $41,340 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;">The following table summarizes stock options outstanding as of December 31, 2022 and 2021:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2022</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">143,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.66</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">132,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.72</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">270,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.12</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">10,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.93</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">413,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1.65</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">143,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.66</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Options outstanding and exercisable by price range as of December 31, 2022 were as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong><strong>Weighted</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Range</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining </strong><strong>Contractual </strong><strong>Life in Years</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted </strong><strong>Average </strong><strong>Exercise Price</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td style="width:17%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">27,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">2.20</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">27,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;">0.80</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.88</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.01</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.88</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">25,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.02</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">25,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">9.06</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.12</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.93</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.06</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.93</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.16</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">5,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.00</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">5,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.16</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.40</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3.05</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.40</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.06</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.06</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">413,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">6.63</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">413,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">1.65</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Stock Warrants</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On February 11, 2021, we agreed to amend (the &#8220;Warrant Amendment&#8221;) the warrant to purchase 125,000 shares of TOMI common stock, par value $0.01 (the &#8220;Common Stock&#8221;), issued by TOMI to Dr. Halden S. Shane, TOMI&#8217;s Chief Executive Officer and a director on TOMI&#8217;s board of directors, on February 11, 2014 (the &#8220;Warrant&#8221;), to provide TOMI an option to repurchase the Warrant from Dr. Shane at a negotiated price. In connection with the Warrant Amendment, TOMI repurchased the warrant from Dr. Shane (the &#8220;Repurchase&#8221;) for an aggregate cash consideration of $314,500, representing a 15% discount of the net exercise cash value of the Warrant, which was calculated using the closing price of the Common Stock on the Nasdaq on February 11, 2021 of $5.36, less the exercise price of the warrants in the amount of $2.40. On the same date, the Warrant Amendment and the Repurchase was considered, approved and adopted by a disinterested majority of TOMI&#8217;s board of directors.&#160; The $314,500 charge in connection with the warrant amendment has been included in General and Administrative expenses for the year ended December 31, 2021.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In September 2021, we issued 1,434,721 warrants in a private placement in connection with the sale common stock through a registered direct offering.&#160; The Warrants are exercisable at an exercise price of $1.68 per share, are exercisable immediately upon issuance and have a term of exercise equal to five years from the date of issuance. In addition, we issued 172,167 warrants to the placement agent which have a term of five years and an exercise price of $2.18. </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt">In November 2022, we modified the terms of Dr. Halden S. Shane's, TOMI's Chief Executive Officer and a director on TOMI's board of directors, outstanding warrants to purchase 593,750 shares of common stock.&#160; The terms of the warrants were increased by 10 years.&#160; Pursuant to ASC 718, the modified terms of the warrants resulted in approximately $356,000 in incremental equity compensation expense for the year ended December 31, 2022.&#160; We utilized the Black-Scholes method to fair value the warrants under the original and modified terms with the following range of assumptions: volatility, 83%-163%; expected dividend yield, 0%; risk free interest rate, 4.31%; and a life of 0.12 - 11.23 years, respectively. The grant date fair value range of each share of common stock underlying the warrant was $0.17 through $0.65.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table summarizes the outstanding common stock warrants as of December 31, 2022 and 2021:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2022</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,381,021</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.22</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,049,133</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.55</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,606,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.73</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(0.21</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(557,436</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(2.23</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(262,500</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(2.65</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,792,335</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.25</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">3,381,021</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.22</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Warrants outstanding and exercisable by price range as of December 31, 2022 were as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><strong>Average Weighted</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td style="width:17%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.64</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">10.89</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;">0.64</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">11.08</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.80</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">442,708</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">9.98</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">442,708</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.30</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.12</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.20</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">175,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.88</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">175,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.20</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.68</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.68</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.18</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.18</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.32</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.00</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">6.95</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">375,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">375,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6.95</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">8.40</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">1,489</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">0.63</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">1,489</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">8.40</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,792,335</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">5.58</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,792,335</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2.25</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">There were no unvested warrants outstanding as of December 31, 2022.</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_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>
<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 shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -URI https://asc.fasb.org/topic&amp;trid=2208762<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496171-112644<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496171-112644<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496189-112644<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496189-112644<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496171-112644<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496189-112644<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496180-112644<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126731327&amp;loc=SL126733271-114008<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>36
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771127408">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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</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;font-family:times new roman;margin:0px"><strong>NOTE 11. COMMITMENTS AND CONTINGENCIES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Legal Contingencies</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We may become a party to litigation in the normal course of business. In the opinion of management, there are no legal matters involving us that would have a material adverse effect upon our financial condition, results of operations or cash flows. In addition, from time to time, we may have to file claims against parties that infringe on our intellectual property.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Product Liability</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">As of December 31, 2022 and 2021, there were no claims against us for product liability.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>COVID-19 Pandemic</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The COVID-19 pandemic has temporarily increased the global demand for disinfection products and services that help prevent the spread and transmission of COVID-19 virus. The Company&#8217;s products have been identified as an essential disinfectant and decontamination vendor by various agencies and countries, which have materially affected its business and results of operations. The Company experienced a substantial increase in demand for our products and services in 2020 due to the pandemic. Throughout 2021, the Company experienced a reduction of demand due to various factors, including the closure of our major customers&#8217; business operations due to the pandemic, which resulted in the suspension of many of its ongoing long-term projects. As the impact of the COVID-19 pandemic began to subside and economic activities gradually return to normal in 2022, customers reallocated their resources elsewhere and reduced their spending on disinfection products, which resulted in lower demand for our products. It is difficult to predict how COVID-19 pandemic will affect the Company&#8217;s financial performance in early 2023, as the global economy gradually reopens, customers adjust and change their operations, and the Company implements new marketing and sales strategies in response.</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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI https://asc.fasb.org/topic&amp;trid=2144648<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 440<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6491277&amp;loc=d3e6429-115629<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI https://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<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>37
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772529344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONTRACTS AND AGREEMENTS<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>CONTRACTS AND AGREEMENTS</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_tomz_ContractsAndAgreementsTextBlock', window );">CONTRACTS AND AGREEMENTS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 12. CONTRACTS AND AGREEMENTS</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Director Compensation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In December 2017, we increased the annual fee to the members of our Board to $40,000, to be paid in cash on a quarterly basis, with the exception of the audit committee chairperson, whose annual fee we increased to $45,000, also to be paid in cash on a quarterly basis. Director compensation also includes the annual issuance of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2021, we issued an aggregate of 50,000 shares of common stock that were valued at $48,000 to members of our Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2022, we issued an aggregate of 51,750 shares of common stock that were valued at approximately $54,000 to members of our Board.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Manufacturing Agreement</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In June 2020 we entered into a manufacturing agreement with Planet Innovation Products, Pty Ltd (&#8220;PI&#8221;).&#160; The agreement does not provide for any minimum purchase commitments and is for a term of three years. The agreement also provides for a warranty against product defects.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Cloud Computing Service Contract</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Cloud Computing Service Contract</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </em></strong>In May 2020 we entered into an agreement with a vendor for a cloud computing service contract. The contract provides for annual payments in the amount of $30,409 and has a term of 5 years. Approximate minimum future payments under the contract are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended</strong><strong>:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;">60,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ContractsAndAgreementsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contracts and agreements text block.</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;">tomz_ContractsAndAgreementsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="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>38
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772527344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_AccruedLiabilitiesAndOtherLiabilitiesAbstract', window );"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock', window );">ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Accrued expenses and other current liabilities consisted of the following at:</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commissions</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">442,805</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">228,665</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Payroll and related costs </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">136,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">241,434</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Director fees&#160;&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34,650</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales Tax Payable&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,351</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,411</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued warranty (Note 14)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">48,599</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">75,848</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">728,703</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">664,608</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accounts payable, accrued expenses, and other liabilities that are classified as current at the end of the reporting 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_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock</td>
</tr>
<tr>
<td style="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_AccruedLiabilitiesAndOtherLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesAndOtherLiabilitiesAbstract</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772559232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED WARRANTY<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>ACCRUED WARRANTY</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_GuaranteesTextBlock', window );">ACCRUED WARRANTY</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 14. ACCRUED WARRANTY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. The warranty is generally limited to a refund of the original purchase price of the product or a replacement part. We estimate warranty costs based on historical warranty claim experience.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; The following table presents warranty reserve activities at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Beginning accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for warranty expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">24,158</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">75,618</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Settlement of warranty claims</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(24,158</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(75,618</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Ending accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_GuaranteesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 each guarantee obligation, or each group of similar guarantee obligations, including (a) the nature of the guarantee, including its term, how it arose, and the events or circumstances that would require the guarantor to perform under the guarantee; (b) the maximum potential amount of future payments (undiscounted) the guarantor could be required to make under the guarantee; (c) the current carrying amount of the liability, if any, for the guarantor's obligations under the guarantee; and (d) the nature of any recourse provisions under the guarantee, and any assets held either as collateral or by third parties, and any relevant related party disclosure. Excludes disclosures about product warranties.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -URI https://asc.fasb.org/topic&amp;trid=2155896<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_GuaranteesTextBlock</td>
</tr>
<tr>
<td style="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>40
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772529344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAXES<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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 TAXES</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;font-family:times new roman;margin:0px"><strong>NOTE 15. INCOME TAXES</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The Company&#8217;s income tax expense (benefit) consisted of:</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"/><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"/><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Federal</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">State</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="width:1%;vertical-align:bottom;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">)&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Federal</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">State</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The Company&#8217;s net income (loss) before income tax consisted of:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">United States</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;">)</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">(4,509,585</td><td style="width:1%;vertical-align:bottom;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,781,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,509,585</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">Our income tax expense differed from the amounts computed by applying the United States statutory corporate income tax rate for the following reasons:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">On December&#160;22, 2017, the 2017 Tax Cuts and Jobs Act (&#8220;Tax Act&#8221;) was enacted into law making significant changes to the Internal Revenue Code. Changes include, but are not limited to, a federal corporate tax rate decrease from 35% to 21% for tax years beginning after December&#160;31, 2017, the transition of U.S. international taxation from a worldwide tax system to a territorial system and a one-time transition tax on the mandatory deemed repatriation of foreign earnings. We are required to recognize the effect of the tax law changes in the period of enactment, such as re-measuring our U.S. deferred tax assets and liabilities as well as reassessing the net realizability of our deferred tax assets and liabilities. The Tax Act did not give rise to any material impact on the consolidated balance sheets and consolidated statements of operations due to our historical loss position and the full valuation allowance on our net U.S. deferred tax assets.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt">The reconciliation of taxes at the federal and state statutory rate to our provision for income taxes for the years ended December&#160;31, 2022 and 2021 was as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (Loss) before income tax</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(4,509,585</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US statutory corporate income tax rate</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense (benefit) computed at US statutory corporate income tax rate</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(806,417</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,002,844 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reconciling items:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Change in valuation allowance on deferred tax assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">553,005</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,334,294</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision to prior year tax return</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;36,032</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(60,646</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Incentive stock options and warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">183,076</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,139</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gain Upon Debt Extinguishment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(116,083</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">34,034</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"/><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">25,894</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense (benefit)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(74,086</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Components of our deferred income tax assets (liabilities) are as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred tax assets:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Reserve for Bad Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">470,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">470,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">27,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accrued Vacation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">38,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">81,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Warranty Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Intangible Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">257,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">404,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capitalized Research and Development</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">67,000</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">-</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">241,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">267,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net operating losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,639,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,124,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Valuation Allowance</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(5,332,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(4,941,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Deferred Tax Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">426,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">424,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred tax liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(217,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(277,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Property and Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(209,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(147,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(426,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(424,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Deferred Tax Assets and Liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits, which are, on a more likely than not basis, not expected to be realized; in accordance with ASC guidance for income taxes. As of December 31, 2022, we recorded a valuation allowance of $5,332,000 for the portion of the deferred tax assets that we do not expect to be realized. The valuation allowance on our net deferred taxes increased by $391,000 during the year ended December 31, 2022, primarily due to U.S. deferred tax assets incurred in the current year that cannot be realized. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">For income tax purposes in the United States, we had available federal net operating loss carryforwards (&#8220;NOL&#8221;) as of December 31, 2022 and 2021 of approximately $17,479,000 and $15,262,000 respectively to reduce future federal taxable income. For income tax purposes in the United States, we had available state NOL carryforwards as of December 31, 2022 and 2021 of approximately $13,835,000 and $12,386,000 respectively to reduce future state taxable income. If any of the NOL&#8217;s generated prior to 2018 are not utilized, they will expire at various dates through 2037. NOL&#8217;s generated after 2017 carry forward indefinitely. There may be certain limitations as to the future annual use of the NOLs due to certain changes in our ownership.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;">Federal and state laws can impose substantial restrictions on the utilization of net operating loss and tax credit carry-forwards in the event of an &#8220;ownership change,&#8221; as defined in Section 382 of the Internal Revenue Code. We did not perform 382 study to determine if ownership change occurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We record uncertain tax positions in accordance with ASC 740 on the basis of a two-step process whereby (1) we determine whether it is more likely than not that the tax positions will be sustained on the basis of the technical merits of the position and (2) for those tax positions that meet the more-likely-than-not recognition threshold, we recognize the largest amount of tax benefit that is more than 50 percent likely to be realized upon ultimate settlement with the related tax authority. As of December 31, 2022, and 2021, the management of the Company determined there were no reportable uncertain tax positions.</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 taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI https://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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>41
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772720960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CUSTOMER CONCENTRATION<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_RisksAndUncertaintiesAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT</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_ConcentrationRiskDisclosureTextBlock', window );">CUSTOMER CONCENTRATION</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 16. CUSTOMER CONCENTRATION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">The Company had certain customers whose accounts receivable balances individually represented 10% or more of the Company&#8217;s accounts receivable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, one customers accounted for 14% of our gross accounts receivable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2021, three customers accounted for 42% of our gross accounts receivable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the years ended December 31, 2022 and 2021, we had no customers who represented 10% or more of revenue.</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_ConcentrationRiskDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -URI https://asc.fasb.org/topic&amp;trid=2134479<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_ConcentrationRiskDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_RisksAndUncertaintiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RisksAndUncertaintiesAbstract</td>
</tr>
<tr>
<td style="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>42
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772565088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUBSEQUENT EVENTS<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_SubsequentEventsAbstract', window );"><strong>SUBSEQUENT EVENTS</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_SubsequentEventsTextBlock', window );">SUBSEQUENT EVENTS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 17. SUBSEQUENT EVENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Pursuant to the agreement with our Board of Directors, in January 2023, we issued an aggregate of 60,000 shares of common stock valued at approximately $51,000 to independent directors of the Board. The agreements with our Board provide for the annual issuance of shares of our common stock.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2023 we issued an option to purchase 100,000 shares of common stock to our Chief Executive Officer at an exercise price of $0.85 per share pursuant to an employment agreement. The option was valued at $75,635 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 139%; expected dividend yield, 0%; risk free interest rate, 3.59%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $0.76.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2023 we issued an option to purchase 50,000 shares of common stock to our Chief Operating Officer at an exercise price of $0.85 per share pursuant to an employment agreement. The option was valued at $37,817 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Operating Officer with the following assumptions: volatility, 139%; expected dividend yield, 0%; risk free interest rate, 3.59%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $0.76.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In January 2023 we issued an option to purchase 25,000 shares of common stock to our Chief Financial Officer at an exercise price of $0.85 per share pursuant to an employment agreement. The option was valued at $18,909 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Financial Officer with the following assumptions: volatility, 139%; expected dividend yield, 0%; risk free interest rate, 3.59%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $0.76.</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_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="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_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -URI https://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<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_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="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>43
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777151088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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_ConsolidationPolicyTextBlock', window );">Principles of Consolidation</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The accompanying consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.</p><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_PriorPeriodReclassificationAdjustmentDescription', window );">Reclassification of Accounts</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.</p><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_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The preparation of the consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to accounts receivable, inventory, fair values of financial instruments, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p><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_FairValueMeasurementPolicyPolicyTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of inputs, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p><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_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be in excess of insured limits. At December 31, 2022 and December 31, 2021, there were no cash equivalents. </p><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_ReceivablesPolicyTextBlock', window );">Accounts Receivable</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our accounts receivable are typically from credit worthy customers or, for certain international customers, are supported by pre-payments. For those customers to whom we extend credit, we perform periodic evaluations of their status and maintain allowances for potential credit losses as deemed necessary. We have a policy of reserving for doubtful accounts based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be in doubt. Account balances deemed to be uncollectible are charged to the allowance after all means of collection have been exhausted and the potential for recovery is considered remote.&#160; Bad debt expense for the years ended December 31, 2022 and 2021, was approximately $142,188 and $1,605,660, respectively. &#160;At December 31, 2022 and December 31, 2021, the allowance for doubtful accounts reserve was $1,678,000.</p><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_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We expense costs to maintain certification to cost of goods sold as incurred.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"><em>We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable.&#160; Our reserve for obsolete inventory was $95,000 and $0 as of December 31, 2022 and December 31, 2021, respectively.</em></p><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_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation for equipment, furniture and fixtures and vehicles commences once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the lives of the respective leases or service lives of the improvements, whichever is shorter.</p><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_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depends on classification as a finance or operating lease.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We have also elected the practical expedient to not separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense when recognized.</p><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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Capitalized Software Development Costs</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">In accordance with ASC 985-20 regarding the development of software to be sold, leased, or marketed, we expense such costs as they are incurred until technological feasibility has been established, at and after which time those costs are capitalized until the product is available for general release to customers. The periodic expense for the amortization of capitalized software development costs will be included in cost of sales. Amortization expense for the years ended December 31, 2022 and 2021, was $10,475 and $41,900, respectively.</p><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_tomz_AccountsPayablePolicyTextBlock', window );">Accounts Payable</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, two vendors accounted for approximately 55% of accounts payable. As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">For the year ended December 31, 2022, two vendors accounted for 67% of cost of sales. For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales.</p><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_ExtendedProductWarrantyPolicy', window );">Accrued Warranties</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:40pt">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. As of December 31, 2022, and December 31, 2021, our warranty reserve was $68,000. (See Note 14).</p><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_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes. Net deferred tax benefits have been fully reserved at December 31, 2022 and December 31, 2021. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.</p><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_EarningsPerSharePolicyTextBlock', window );">Net Income (Loss) Per Share</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the treasury stock method and includes the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Potentially dilutive securities as of December 31, 2022 consisted of 2,792,335 shares of common stock issuable upon exercise of outstanding warrants, 413,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#8220;Convertible Series A Preferred Stock&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Potentially dilutive securities as of December 31, 2021 consisted of 3,381,021 shares of common stock issuable upon exercise of outstanding warrants, 143,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#8220;Convertible Series A Preferred Stock&#8221;).</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Diluted net income or (loss) per share is computed similarly to basic net income or (loss) per share except that the denominator is increased to include the number of additional shares of common stock that would have been outstanding if the potential shares of common stock had been issued and if such additional shares were dilutive. Options, warrants, &#160;and preferred stock 3.3 million and 3.6 million shares of common stock were outstanding at December 31, 2022 and 2021, respectively, but were excluded from the computation of diluted net loss per share at December 31, 2022 and 2021 due to the anti-dilutive effect on net loss per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Net Income (Loss) Per Common Share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="10" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p></td></tr></tbody></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_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606). We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Title and risk of loss generally pass to our customers upon shipment. Our Customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to bringing about resale. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Disaggregation of Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The following table presents our revenues disaggregated by revenue source.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,864,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,179,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">685,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,474,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,575,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(101,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Revenue by Geographic Region</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,261,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,403,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(142,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,077,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,351,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">726,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Product revenue includes sales from our standard and customized equipment, solution and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Costs to Obtain a Contract with a Customer</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Contract Balances</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">As of December 31, 2022, and December 31, 2021 we did not have any unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Arrangements with Multiple Performance Obligations</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Significant Judgments</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services.</p><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_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Equity Compensation Expense</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation&#8212;Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#8211;free interest rates are calculated based on continuously compounded risk&#8211;free rates for the appropriate term.&#160;The expected term of the Company's warrants has been determined utilizing the "simplified" method for awards that qualify as "plain-vanilla" warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its Common Stock and does not intend to pay dividends on its Common Stock in the foreseeable future. The expected forfeiture rate is estimated based on management&#8217;s best assessment.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">On July 7, 2017, our shareholders approved the 2016 Equity Incentive Plan, or the 2016 Plan. The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of common stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of common stock for numerous reasons, including, but not limited to, shares of common stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. For the year ended December 31, 2022 and 2021, we issued 51,750 and 50,000 shares of common stock, respectively, out of the 2016 Plan.</p><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_ConcentrationRiskCreditRisk', window );">Concentrations of Credit Risk</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.</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_tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets', window );">Long-Lived Assets Including Acquired Intangible Assets</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the years ended December 31, 2022 and 2021.</p><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_AdvertisingCostsPolicyTextBlock', window );">Advertising and Promotional Expenses</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">We expense advertising costs in the period in which they are incurred. Advertising and promotional expenses included in selling expenses for the years ended December 31, 2022 and 2021 were approximately $653,000 and $701,000, respectively.</p><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_ResearchAndDevelopmentExpensePolicy', window );">Research and Development Expenses</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2022 and 2021, research and development expenses were approximately $352,000 and $573,000, respectively.</p><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_BusinessCombinationsPolicy', window );">Business Segments</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in">We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product. A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above.</p><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_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In March 2022, the FASB issued ASU 2022-02, Troubled Debt Restructurings and Vintage Disclosures. This ASU eliminates the accounting guidance for troubled debt restructurings by creditors that have adopted ASU 2016-13, Measurement of Credit Losses on Financial Instruments, which we adopted on January 1, 2020. This ASU also enhances the disclosure requirements for certain loan refinancing and restructurings by creditors when a borrower is experiencing financial difficulty. In addition, the ASU amends the guidance on vintage disclosures to require entities to disclose current period gross write-offs by year of origination for financing receivables and net investments in leases within the scope of ASC 326-20. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU would be applied prospectively. Early adoption is also permitted, including adoption in an interim period. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In October 2021, the FASB issued ASU No. 2021-08, Accounting for Contract Assets and Contract Liabilities from Contracts with Customers (Topic 805). This ASU requires an acquirer in a business combination to recognize and measure contract assets and contract liabilities (deferred revenue) from acquired contracts using the revenue recognition guidance in Topic 606. At the acquisition date, the acquirer applies the revenue model as if it had originated the acquired contracts. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU should be applied prospectively. Early adoption is also permitted, including adoption in an interim period. If early adopted, the amendments are applied retrospectively to all business combinations for which the acquisition date occurred during the fiscal year of adoption. This ASU is currently not expected to have a material impact on our consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"><em>Recently adopted accounting pronouncements</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt">In November 2021, the FASB issued ASU No. 2021-10, Government Assistance (Topic 832). This ASU requires business entities to disclose information about government assistance they receive if the transactions were accounted for by analogy to either a grant or a contribution accounting model. The disclosure requirements include the nature of the transaction and the related accounting policy used, the line items on the balance sheets and statements of operations that are affected and the amounts applicable to each financial statement line item and the significant terms and conditions of the transactions. The ASU is effective for annual periods beginning after December 15, 2021. We adopted ASU 2021-10 starting in 2022, which did not have a material impact on our consolidated financial statements.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AccountsPayablePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Custom Element.</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;">tomz_AccountsPayablePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Long lived assets including acquired intangible 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;">tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_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_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for advertising 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<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_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI https://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<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_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4273-108586<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_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for credit risk.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941378&amp;loc=d3e61044-112788<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_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="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_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<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_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="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_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<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_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="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_ExtendedProductWarrantyPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for extended product warranties and other guarantee contracts including the methodology for measuring the liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<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_ExtendedProductWarrantyPolicy</td>
</tr>
<tr>
<td style="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_FairValueMeasurementPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and 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_FairValueMeasurementPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32247-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32847-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL116659661-227067<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32280-109318<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<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_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="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_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 330<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126900757&amp;loc=d3e543-108305<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<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_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="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_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for leasing arrangement entered into by lessee.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918666-209980<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_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429488&amp;loc=d3e326-107755<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_PriorPeriodReclassificationAdjustmentDescription</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ReceivablesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for receivable. Includes, but is not limited to, accounts receivable and financing 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5033-111524<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10178-111534<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10149-111534<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10133-111534<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_ReceivablesPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<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_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 50<br> -Section 25<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=16397303&amp;loc=d3e19347-109286<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 40<br> -Section 30<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=118172244&amp;loc=d3e17916-109280<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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock</td>
</tr>
<tr>
<td style="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_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for revenue. Includes revenue from contract with customer and from other sources.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<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_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -URI https://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="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_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<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_UseOfEstimates</td>
</tr>
<tr>
<td style="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>44
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772464560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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_ImpairmentEffectsOnEarningsPerShareTableTextBlock', window );">Net Income (Loss) Per Share</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Years Ended December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,435,499</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">19,743,544</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17,538,994</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Net Income (Loss) Per Common Share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.15</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.25</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="10" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p></td></tr></tbody></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_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31,</strong> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,864,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,179,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">685,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,474,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,575,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(101,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160; For The Years Ended </strong><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,261,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,403,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(142,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,077,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,351,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">726,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,338,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7,754,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">584,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<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_ImpairmentEffectsOnEarningsPerShareTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 effects of asset impairment charge on per share or per unit basis.</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_ImpairmentEffectsOnEarningsPerShareTableTextBlock</td>
</tr>
<tr>
<td style="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>45
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152774030512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INVENTORIES (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>INVENTORIES</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 );">Inventories</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Finished goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,929,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,293,080</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Raw Materials</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">691,999</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">377,490</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(95,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,495,999</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,743,280</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772500480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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_PropertyPlantAndEquipmentTextBlock', window );">Property and Equipment</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">364,819</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">357,236</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,236,510</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,688,236</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vehicles</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">60,703</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">60,703</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer and software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">246,638</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">232,017</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">393,381</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">386,120</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tenant Improvement Allowance&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">405,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">405,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Costs in Progress &#8211; Tooling and Molds</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">376,864</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,707,051</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,506,176</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated depreciation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,371,720</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,017,857</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Property and Equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,335,331</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,488,319</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="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>47
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152773559792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>INTANGIBLE ASSETS</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 );">Definite Life Intangible Assets</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Intellectual Property and Patents </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,108,063</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,065,584</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Less: Accumulated Amortization </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,882,892</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,868,397</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Patents, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">225,171</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">197,187</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock', window );">Indefinite Life Intangible Assets</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Trademarks</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">800,565</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">759,097</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Total Intangible Assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,025,736</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">956,284</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Approximate Future Amortization</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended</strong><strong>:&#160;</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;<strong>&#160;&#160;&#160;&#160;Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">152,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">197,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<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_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 characteristics and cost, by total and major class, of indefinite-lived intangible assets acquired as part of a business combination. Indefinite-lived intangible assets are assets that have no physical form, but have expected future economic benefit. The future benefit is not expected to diminish over a stated period of time. Acquired indefinite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the entity) and in total.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128092470&amp;loc=d3e4922-128472<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_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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>48
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152778645328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LEASES (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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</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_LeaseCostTableTextBlock', window );">Lease Expense</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Operating leases:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Assets:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="MARGIN: 0px 0px 0px 15px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">528,996</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">583,271</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Liabilities:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">100,282</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">91,775</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, Net of Current Portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">761,132</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">861,415</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">861,414</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">953,190</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_tomz_OperatingLeaseLiabilityTableTextBlock', window );">Operating Lease</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">157,315</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">157,315</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><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_tomz_LeaseOtherInformationTableTextBlock', window );">Other Information Related to Leases</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="9"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average remaining lease term:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;6.00 years&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;7.00 years&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Discount rate:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></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_tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock', window );">Supplemental Cash Flow Information related to leases</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended December 31, 2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">155,621</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">151,088</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock', window );">Maturities of Lease Payments</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Operating</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lease</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">160,290</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">165,098</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">170,051</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">175,153</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">180,407</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">219,571</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total minimum lease payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,070,571</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less:&#160; Interest </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">209,156</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Present value of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">861,415</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Current portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">100,282</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term portion of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">761,132</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_LeaseOtherInformationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_LeaseOtherInformationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_tomz_OperatingLeaseLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OperatingLeaseLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<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_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="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_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_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maturity of undiscounted cash flows to be received by lessor on annual basis 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=124258985&amp;loc=SL77919396-209981<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_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock</td>
</tr>
<tr>
<td style="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>49
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772408736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_CapitalizedComputerSoftwareNetAbstract', window );"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS</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_tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock', window );">Capitalized Software Development Costs</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;&#160;&#160; December 31,</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">125,704</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">125,704</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less:&#160; Accumulated Amortization </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(125,704</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(115,229</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized Software Development Costs - net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">10,475</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_CapitalizedComputerSoftwareNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CapitalizedComputerSoftwareNetAbstract</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152778262576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_StockholdersEquityAbstract', window );"><strong>Shareholders' Equity:</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_ScheduleOfStockOptionsRollForwardTableTextBlock', window );">Stock Options Outstanding</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2022</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">143,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.66</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">132,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.72</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">270,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.12</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">10,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.93</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">413,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1.65</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">143,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.66</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock', window );">Options Outstanding and Exercisable by Price Range</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong><strong>Weighted</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Range</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining </strong><strong>Contractual </strong><strong>Life in Years</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted </strong><strong>Average </strong><strong>Exercise Price</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td style="width:17%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">27,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">2.20</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">27,500</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;">0.80</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.88</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.01</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.88</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">25,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.02</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">25,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">9.06</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.12</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.93</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.06</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.93</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.16</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">5,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.00</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">5,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.16</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.40</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3.05</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.40</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.06</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">31,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.06</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">413,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">6.63</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">413,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">1.65</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock', window );">Stock Warrants Outstanding</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2022</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,381,021</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.22</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,049,133</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.55</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,606,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.73</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(0.21</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(557,436</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(2.23</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(262,500</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(2.65</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,792,335</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.25</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">3,381,021</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.22</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_tomz_WarrantsOutstandingAndExercisableByPriceRange', window );">Warrants Outstanding and Exercisable by Price Range</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><strong>Average Weighted</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td style="width:17%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.64</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">10.89</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;">0.64</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">11.08</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.80</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">442,708</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">9.98</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">442,708</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.30</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6,250</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.12</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.20</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">175,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.88</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">175,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.20</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.68</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.68</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.18</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.18</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.32</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.00</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">6.95</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">375,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">375,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6.95</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">8.40</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">1,489</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">0.63</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">1,489</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">8.40</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,792,335</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">5.58</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,792,335</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2.25</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_WarrantsOutstandingAndExercisableByPriceRange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Custom Element.</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;">tomz_WarrantsOutstandingAndExercisableByPriceRange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_ScheduleOfStockOptionsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 change in stock options.</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_ScheduleOfStockOptionsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 50<br> -Section S99<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6784392&amp;loc=d3e188667-122775<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_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock</td>
</tr>
<tr>
<td style="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_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>51
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772458848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONTRACTS AND AGREEMENTS (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>CONTRACTS AND AGREEMENTS</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_tomz_ApproximateMinimumContractPaymentsTableTextBlock', window );">Approximate Minimum Contract Payments</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended</strong><strong>:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Amount</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2023</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;">60,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ApproximateMinimumContractPaymentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual obligation by timing of payment due. Includes, but is not limited to, long-term debt obligation, lease obligation, and purchase obligation.</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;">tomz_ApproximateMinimumContractPaymentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="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>52
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772647776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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_AccruedLiabilitiesAndOtherLiabilitiesAbstract', window );"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock', window );">Accrued Expenses and Other Current Liabilities</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Accrued expenses and other current liabilities consisted of the following at:</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commissions</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">442,805</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">228,665</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Payroll and related costs </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">136,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">241,434</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Director fees&#160;&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34,650</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales Tax Payable&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,351</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,411</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued warranty (Note 14)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">48,599</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">75,848</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">728,703</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">664,608</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_AccruedLiabilitiesAndOtherLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesAndOtherLiabilitiesAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (a) 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 (accounts payable); (b) other payables; and (c) accrued liabilities. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer). An alternative caption includes accrued expenses.</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_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="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>53
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152772595056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED WARRANTY (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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>ACCRUED WARRANTY</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_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Warranty Reserve Activity</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Beginning accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for warranty expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">24,158</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">75,618</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Settlement of warranty claims</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(24,158</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(75,618</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Ending accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">68,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_ScheduleOfProductWarrantyLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<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_ScheduleOfProductWarrantyLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="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>54
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766814144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAXES (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</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 TAXES</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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Income Tax Expense</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The Company&#8217;s income tax expense (benefit) consisted of:</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"/><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"/><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Federal</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">State</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="width:1%;vertical-align:bottom;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">)&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Federal</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">State</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(74,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td></tr></tbody></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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Net Income (Loss) Before Income Tax</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">The Company&#8217;s net income (loss) before income tax consisted of:</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">United States</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;">)</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;">$</td><td style="width:9%;vertical-align:bottom;text-align:right;">(4,509,585</td><td style="width:1%;vertical-align:bottom;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Foreign</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(2,781,060</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;">$</td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(4,509,585</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;">)</td></tr></tbody></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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Effective Income Tax Rate Reconciliation</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Year Ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (Loss) before income tax</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(2,880,060</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(4,509,585</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US statutory corporate income tax rate</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense (benefit) computed at US statutory corporate income tax rate</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(806,417</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,002,844 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reconciling items:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Change in valuation allowance on deferred tax assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">553,005</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,334,294</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision to prior year tax return</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;36,032</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(60,646</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Incentive stock options and warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">183,076</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,139</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gain Upon Debt Extinguishment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(116,083</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">34,034</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"/><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">25,894</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense (benefit)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(74,086</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Deferred Income Tax Assets (Liabilities)</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2022</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred tax assets:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Reserve for Bad Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">470,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">470,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">27,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accrued Vacation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">38,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">81,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Warranty Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Intangible Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">257,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">404,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capitalized Research and Development</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">67,000</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">-</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">241,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">267,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net operating losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,639,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,124,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Valuation Allowance</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(5,332,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(4,941,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Deferred Tax Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">426,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">424,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred tax liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(217,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(277,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Property and Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(209,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(147,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(426,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(424,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Deferred Tax Assets and Liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income before income tax between domestic and foreign jurisdictions.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock</td>
</tr>
<tr>
<td style="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>55
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777194096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,435,499)<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_tomz_NetLossAttributableToCommonShareholders', window );">Net Income (loss) Attributable To Common Shareholders</a></td>
<td class="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,435,499)<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_EarningsPerShareBasicOtherDisclosuresAbstract', window );"><strong>Weighted Average Number Of Common Shares Outstanding:</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic</a></td>
<td class="nump">19,743,544<span></span>
</td>
<td class="nump">17,538,994<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted</a></td>
<td class="nump">19,743,544<span></span>
</td>
<td class="nump">17,538,994<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_NetIncomeLossAvailableToCommonStockholdersBasicAbstract', window );"><strong>Net Income (loss) Attributable To Common Shareholders 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_Basic', window );">Basic</a></td>
<td class="num">$ (0.15)<span></span>
</td>
<td class="num">$ (0.25)<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_tomz_Diluted', window );">Diluted</a></td>
<td class="num">$ (0.15)<span></span>
</td>
<td class="num">$ (0.25)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_Basic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_Basic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_Diluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_Diluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_NetLossAttributableToCommonShareholders">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_NetLossAttributableToCommonShareholders</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_EarningsPerShareBasicOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareBasicOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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_NetIncomeLossAvailableToCommonStockholdersBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NetIncomeLossAvailableToCommonStockholdersBasicAbstract</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<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>56
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771124720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,435,499)<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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic Weighted-average Shares</a></td>
<td class="nump">19,743,544<span></span>
</td>
<td class="nump">17,538,994<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_tomz_WeightedAverageNumberOfDilutedShareOutstanding1', window );">Diluted Weighted Average Shares</a></td>
<td class="nump">19,743,544<span></span>
</td>
<td class="nump">17,538,994<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</a></td>
<td class="num">$ (0.15)<span></span>
</td>
<td class="num">$ (0.25)<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</a></td>
<td class="num">$ (0.15)<span></span>
</td>
<td class="num">$ (0.25)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_WeightedAverageNumberOfDilutedShareOutstanding1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageNumberOfDilutedShareOutstanding1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<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>57
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777329552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_Revenues', window );">Sales, net</a></td>
<td class="nump">$ 8,338,099<span></span>
</td>
<td class="nump">$ 7,753,582<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_tomz_ChangesInRevenue', window );">Changes In Revenue</a></td>
<td class="nump">584,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_StatementGeographicalAxis=tomz_GeographicRegionMember', window );">Geographic Region Member</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_Revenues', window );">Sales, net</a></td>
<td class="nump">8,338,000<span></span>
</td>
<td class="nump">7,754,000<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_tomz_ChangesInRevenue', window );">Changes In Revenue</a></td>
<td class="nump">584,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_StatementBusinessSegmentsAxis=tomz_SteraMistPRoductMember', window );">SteraMist PRoduct Member</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_Revenues', window );">Sales, net</a></td>
<td class="nump">6,864,000<span></span>
</td>
<td class="nump">6,179,000<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_tomz_ChangesInRevenue', window );">Changes In Revenue</a></td>
<td class="nump">685,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_StatementBusinessSegmentsAxis=tomz_ServiceAndTrainingMember', window );">Service And Training Member</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_Revenues', window );">Sales, net</a></td>
<td class="nump">1,474,000<span></span>
</td>
<td class="nump">1,575,000<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_tomz_ChangesInRevenue', window );">Changes In Revenue</a></td>
<td class="num">(101,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_StatementBusinessSegmentsAxis=tomz_UnitedStatesMember', window );">United States Member</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_Revenues', window );">Sales, net</a></td>
<td class="nump">6,261,000<span></span>
</td>
<td class="nump">6,403,000<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_tomz_ChangesInRevenue', window );">Changes In Revenue</a></td>
<td class="num">(142,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_StatementBusinessSegmentsAxis=tomz_InternationalMember', window );">International Member</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_Revenues', window );">Sales, net</a></td>
<td class="nump">2,077,000<span></span>
</td>
<td class="nump">$ 1,351,000<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_tomz_ChangesInRevenue', window );">Changes In Revenue</a></td>
<td class="nump">$ 726,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_tomz_ChangesInRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ChangesInRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_Revenues</td>
</tr>
<tr>
<td style="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_StatementGeographicalAxis=tomz_GeographicRegionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=tomz_GeographicRegionMember</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_StatementBusinessSegmentsAxis=tomz_SteraMistPRoductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementBusinessSegmentsAxis=tomz_SteraMistPRoductMember</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_StatementBusinessSegmentsAxis=tomz_ServiceAndTrainingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementBusinessSegmentsAxis=tomz_ServiceAndTrainingMember</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_StatementBusinessSegmentsAxis=tomz_UnitedStatesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementBusinessSegmentsAxis=tomz_UnitedStatesMember</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_StatementBusinessSegmentsAxis=tomz_InternationalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementBusinessSegmentsAxis=tomz_InternationalMember</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>58
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766970912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jul. 07, 2017</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_ProvisionForDoubtfulAccounts', window );">Bad Debt Expense</a></td>
<td class="nump">$ 142,188<span></span>
</td>
<td class="nump">$ 1,605,660<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_AllowanceForDoubtfulAccountsReceivable', window );">Allowance For Doubtful Accounts</a></td>
<td class="nump">1,678,000<span></span>
</td>
<td class="nump">1,678,000<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_InventoryValuationReserves', window );">Inventory Reserve</a></td>
<td class="nump">95,000<span></span>
</td>
<td class="nump">0<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves', window );">Warranty Reserve</a></td>
<td class="nump">68,000<span></span>
</td>
<td class="nump">68,000<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_AdvertisingExpense', window );">Advertising And Promotional Expenses</a></td>
<td class="nump">653,000<span></span>
</td>
<td class="nump">701,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_tomz_ResearchAndDevelopmentsExpense', window );">Research And Development Expenses</a></td>
<td class="nump">352,000<span></span>
</td>
<td class="nump">$ 573,000<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_FederalDepositInsuranceCorporationPremiumExpense', window );">Cash Balances At Financial Institutions</a></td>
<td class="nump">$ 250,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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_CommonStockIssuableUponConversionOfOutstandingShares', window );">Common Stock Issuable Upon Conversion Of Outstanding Shares</a></td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<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_tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts', window );">Amortization Of Capitalized Software Development Costs</a></td>
<td class="nump">$ 10,475<span></span>
</td>
<td class="nump">$ 41,900<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_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</a></td>
<td class="nump">250,000,000<span></span>
</td>
<td class="nump">250,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_PlanNameAxis=tomz_EquityIncentivePlanOneMember', window );">2016 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>
</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_PreferredStockSharesAuthorized', window );">Preferred Stock Shares</a></td>
<td class="nump">330,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">360,000<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_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</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">2,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_PlanNameAxis=tomz_EquityIncentivePlanOneMember', window );">2016 Equity Incentive Plan | Director [Member]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_CommonStockSharesIssuedVested', window );">Common Stock, Shares Issued</a></td>
<td class="nump">51,750<span></span>
</td>
<td class="nump">50,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_StatementClassOfStockAxis=tomz_StockOptionsMember', window );">Stock Options</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Potentially Dilutive Securities</a></td>
<td class="nump">413,000<span></span>
</td>
<td class="nump">143,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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember', window );">Warrants</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Potentially Dilutive Securities</a></td>
<td class="nump">2,792,335<span></span>
</td>
<td class="nump">3,381,021<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_srt_MajorCustomersAxis=tomz_TwoVendorsMember', window );">Two Vendors | Cost of Sales [Member]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ConcentrationRiskPercentage', window );">Concentration Risk, Percentage</a></td>
<td class="nump">67.00%<span></span>
</td>
<td class="nump">65.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_srt_MajorCustomersAxis=tomz_TwoVendorsMember', window );">Two Vendors | Accounts Payable</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ConcentrationRiskPercentage', window );">Concentration Risk, Percentage</a></td>
<td class="nump">55.00%<span></span>
</td>
<td class="nump">53.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_SoftwareDevelopmentMember', window );">Software Development [Member]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts', window );">Amortization Of Capitalized Software Development Costs</a></td>
<td class="nump">$ 10,475<span></span>
</td>
<td class="nump">$ 41,900<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_tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_CommonStockIssuableUponConversionOfOutstandingShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CommonStockIssuableUponConversionOfOutstandingShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_CommonStockSharesIssuedVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CommonStockSharesIssuedVested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ConcentrationRiskPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ConcentrationRiskPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_ResearchAndDevelopmentsExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ResearchAndDevelopmentsExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, 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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<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_AdvertisingExpense</td>
</tr>
<tr>
<td style="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_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss on accounts 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<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_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maximum number of common shares permitted to be issued by an entity's charter and bylaws.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves</td>
</tr>
<tr>
<td style="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_FederalDepositInsuranceCorporationPremiumExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Federal Deposit Insurance Corporation (FDIC) insurance.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.14)<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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_FederalDepositInsuranceCorporationPremiumExpense</td>
</tr>
<tr>
<td style="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_InventoryValuationReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation reserve for inventory.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<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_InventoryValuationReserves</td>
</tr>
<tr>
<td style="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_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="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_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (reversal of expense) for expected credit loss on accounts 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="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_PlanNameAxis=tomz_EquityIncentivePlanOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=tomz_EquityIncentivePlanOneMember</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_RelatedPartyTransactionsByRelatedPartyAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=srt_DirectorMember</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_StatementClassOfStockAxis=tomz_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=tomz_StockOptionsMember</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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember</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=tomz_TwoVendorsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_TwoVendorsMember</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_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_ExtinguishmentOfDebtAxis=us-gaap_AccountsPayableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ExtinguishmentOfDebtAxis=us-gaap_AccountsPayableMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_SoftwareDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_SoftwareDevelopmentMember</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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152773899584">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INVENTORIES (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>INVENTORIES</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_InventoryFinishedGoods', window );">Finished Goods</a></td>
<td class="nump">$ 3,929,000<span></span>
</td>
<td class="nump">$ 4,293,080<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_InventoryRawMaterials', window );">Raw Materials</a></td>
<td class="nump">691,999<span></span>
</td>
<td class="nump">377,490<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_InventoryValuationReserves', window );">Inventory Reserve</a></td>
<td class="num">(95,000)<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_InventoryNet', window );">Total</a></td>
<td class="nump">$ 4,495,999<span></span>
</td>
<td class="nump">$ 4,743,280<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_InventoryFinishedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and LIFO reserves of completed merchandise or goods expected to be sold 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_InventoryFinishedGoods</td>
</tr>
<tr>
<td style="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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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_InventoryRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and LIFO reserves of raw materials 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_InventoryRawMaterials</td>
</tr>
<tr>
<td style="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_InventoryValuationReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation reserve for inventory.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<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_InventoryValuationReserves</td>
</tr>
<tr>
<td style="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>60
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771876720">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>VENDOR DEPOSITS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_ExtraordinaryAndUnusualItemsAbstract', window );"><strong>VENDOR DEPOSITS</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_Deposits', window );">vendor deposits</a></td>
<td class="nump">$ 447,052<span></span>
</td>
<td class="nump">$ 288,586<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_Deposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all deposit liabilities held by the entity, including foreign and domestic, interest and noninterest bearing; may include demand deposits, saving deposits, Negotiable Order of Withdrawal (NOW) and time deposits among 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.12)<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<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_Deposits</td>
</tr>
<tr>
<td style="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_ExtraordinaryAndUnusualItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ExtraordinaryAndUnusualItemsAbstract</td>
</tr>
<tr>
<td style="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>61
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777235072">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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_FurnitureAndFixturesGross', window );">Furniture And Fixtures</a></td>
<td class="nump">$ 364,819<span></span>
</td>
<td class="nump">$ 357,236<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_tomz_Equipments', window );">Equipment</a></td>
<td class="nump">2,236,510<span></span>
</td>
<td class="nump">1,688,236<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_PublicUtilitiesPropertyPlantAndEquipmentVehicles', window );">Vehicles</a></td>
<td class="nump">60,703<span></span>
</td>
<td class="nump">60,703<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_tomz_ComputerSoftware', window );">Computer And Software</a></td>
<td class="nump">246,638<span></span>
</td>
<td class="nump">232,017<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_LeaseholdImprovementsGross', window );">Leasehold Improvements</a></td>
<td class="nump">393,381<span></span>
</td>
<td class="nump">386,120<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_ConstructionInProgressGross', window );">Tenant Improvement Allowance</a></td>
<td class="nump">405,000<span></span>
</td>
<td class="nump">405,000<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_CapitalizedCostsOilAndGasProducingActivitiesGross', window );">Capitalized Costs In Progress - Tooling And Molds</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">376,864<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_PropertyPlantAndEquipmentGross', window );">Property And Equipment, Gross</a></td>
<td class="nump">3,707,051<span></span>
</td>
<td class="nump">3,506,176<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: Accumulated Depreciation</a></td>
<td class="nump">2,371,720<span></span>
</td>
<td class="nump">2,017,857<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">$ 1,335,331<span></span>
</td>
<td class="nump">$ 1,488,319<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ComputerSoftware">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ComputerSoftware</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_Equipments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_Equipments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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_CapitalizedCostsOilAndGasProducingActivitiesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 sum of capitalized costs relating to oil and gas producing activities before accounting for accumulated depreciation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 932<br> -SubTopic 235<br> -Section 50<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126939881&amp;loc=d3e61901-109447<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_CapitalizedCostsOilAndGasProducingActivitiesGross</td>
</tr>
<tr>
<td style="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_ConstructionInProgressGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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_ConstructionInProgressGross</td>
</tr>
<tr>
<td style="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_FurnitureAndFixturesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated depreciation of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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_FurnitureAndFixturesGross</td>
</tr>
<tr>
<td style="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_LeaseholdImprovementsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated depreciation of additions or improvements to assets held under a lease 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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_LeaseholdImprovementsGross</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business 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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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_PublicUtilitiesPropertyPlantAndEquipmentVehicles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 end book value of vehicles owned by the public utility.</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_PublicUtilitiesPropertyPlantAndEquipmentVehicles</td>
</tr>
<tr>
<td style="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>62
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152774061120">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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_Depreciation', window );">Depreciation</a></td>
<td class="nump">$ 314,669<span></span>
</td>
<td class="nump">$ 299,665<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_tomz_AmortizationOfTenantImprovementAllowance', window );">Amortization Of Tenant Improvement Allowance</a></td>
<td class="nump">$ 39,194<span></span>
</td>
<td class="nump">$ 39,194<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AmortizationOfTenantImprovementAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AmortizationOfTenantImprovementAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_Depreciation</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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>63
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777239328">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>INTANGIBLE 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_FiniteLivedIntangibleAssetsGross', window );">Intellectual Property And Patents</a></td>
<td class="nump">$ 3,108,063<span></span>
</td>
<td class="nump">$ 3,065,584<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 );">Less: Accumulated Amortization</a></td>
<td class="nump">2,882,892<span></span>
</td>
<td class="nump">2,868,397<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_tomz_IntangibleAssetsNet', window );">Intangible Assets, Net</a></td>
<td class="nump">$ 225,171<span></span>
</td>
<td class="nump">$ 197,187<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_IntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_IntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_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>64
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777422192">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details 1) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>INTANGIBLE 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_IndefiniteLivedTrademarks', window );">Trademarks</a></td>
<td class="nump">$ 800,565<span></span>
</td>
<td class="nump">$ 759,097<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 );">Total Intangible Assets, Net</a></td>
<td class="nump">$ 1,025,736<span></span>
</td>
<td class="nump">$ 956,284<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_IndefiniteLivedTrademarks">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (original costs adjusted for previously recognized amortization and impairment) as of the balance sheet date for the rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style for a projected indefinite period of benefit.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_IndefiniteLivedTrademarks</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152767078208">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details 2)<br></strong></div></th>
<th class="th">
<div>Dec. 31, 2022 </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_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Amortization</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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">December 31, 2023</a></td>
<td class="nump">$ 14,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">December 31, 2024</a></td>
<td class="nump">14,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">December 31, 2025</a></td>
<td class="nump">14,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">December 31, 2026</a></td>
<td class="nump">14,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">December 31, 2027</a></td>
<td class="nump">152,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">14,500<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_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 197,000<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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth 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;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fifth 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract</td>
</tr>
<tr>
<td style="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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777222816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>INTANGIBLE 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_AmortizationOfIntangibleAssets', window );">Amortization Expense</a></td>
<td class="nump">$ 14,495<span></span>
</td>
<td class="nump">$ 11,406<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. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<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_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>67
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771884432">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>LEASES (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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 Asset</a></td>
<td class="nump">$ 528,996<span></span>
</td>
<td class="nump">$ 583,271<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_LiabilitiesAbstract', window );"><strong>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_OperatingLeaseLiabilityCurrent', window );">Current Portion Of Long-term Operating Lease</a></td>
<td class="nump">100,282<span></span>
</td>
<td class="nump">91,775<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_OperatingLeaseLiabilityNoncurrent', window );">Long-term Operating Lease, Net Of Current Portion</a></td>
<td class="nump">761,132<span></span>
</td>
<td class="nump">861,415<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 );">Total</a></td>
<td class="nump">$ 861,414<span></span>
</td>
<td class="nump">$ 953,190<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777516288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LEASES (Details 1) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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</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_OperatingLeaseExpense', window );">Operating Lease Expense</a></td>
<td class="nump">$ 157,315<span></span>
</td>
<td class="nump">$ 157,315<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_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating lease expense. Excludes sublease income.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918638-209977<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_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="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>69
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152773871888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LEASES (Details 2)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2022</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</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm', window );">Weighted-average Remaining Lease Term: Operating Leases</a></td>
<td class="text">6.00<span></span>
</td>
<td class="text">7.00<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_LesseeOperatingLeaseDiscountRate', window );">Discount Rate: Operating Leases</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_LesseeOperatingLeaseDiscountRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Discount rate used by lessee to determine present value of operating lease payments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918673-209980<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_LesseeOperatingLeaseDiscountRate</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777248080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LEASES (Details 3) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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</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_OperatingLeaseInitialDirectCostExpenseOverTerm', window );">Cash Paid For Amounts Included In The Measurement Of Lease Liabilities:</a></td>
<td class="nump">$ 155,621<span></span>
</td>
<td class="nump">$ 151,088<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_OperatingLeaseInitialDirectCostExpenseOverTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating lease initial direct cost recognized as expense over lease term.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 25<br> -Paragraph 11<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123408481&amp;loc=SL77919140-209958<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_OperatingLeaseInitialDirectCostExpenseOverTerm</td>
</tr>
<tr>
<td style="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>71
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766772784">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>LEASES (Details 4) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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</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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">December 31, 2023</a></td>
<td class="nump">$ 160,290<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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">December 31, 2024</a></td>
<td class="nump">165,098<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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">December 31, 2025</a></td>
<td class="nump">170,051<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">December 31, 2026</a></td>
<td class="nump">175,153<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">December 31, 2027</a></td>
<td class="nump">180,407<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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">219,571<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total Minimum Lease Payments</a></td>
<td class="nump">1,070,571<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: Interest</a></td>
<td class="nump">209,156<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_CapitalLeaseObligationsCurrent', window );">Present Value Of Lease Obligations</a></td>
<td class="nump">861,415<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 );">Less: Current Portion</a></td>
<td class="nump">100,282<span></span>
</td>
<td class="nump">$ 91,775<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 Portion Of Lease Obligations</a></td>
<td class="nump">$ 761,132<span></span>
</td>
<td class="nump">$ 861,415<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_CapitalLeaseObligationsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 capital lease obligation 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/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=123406127&amp;loc=d3e45023-112735<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123386454&amp;loc=d3e45280-112737<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CapitalLeaseObligationsCurrent</td>
</tr>
<tr>
<td style="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_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_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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fifth 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fifth 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152770954192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LEASES (Details Narrative)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Apr. 30, 2018 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th"><div>Dec. 31, 2022</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</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_tomz_TermLease', window );">Term Lease</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<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_AreaOfLand', window );">Area Of Lease Facility | ft&#178;</a></td>
<td class="nump">9,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_OperatingLeasesRentExpenseNet', window );">Annual Rent Lease</a></td>
<td class="nump">$ 143,460<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_tomz_MaximumIncreasesRentPercentage', window );">Increases Rent Percentage Escalation Clause</a></td>
<td class="nump">3.00%<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_WorkersCompensationDiscountPercent', window );">Discount Rate</a></td>
<td class="nump">7.00%<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_PaymentsForProceedsFromTenantAllowance', window );">Landlord Tenant Improvement Allowance</a></td>
<td class="nump">$ 405,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_tomz_MaximumIncreasesRentPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_MaximumIncreasesRentPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_TermLease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_TermLease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AreaOfLand">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of land held.</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_AreaOfLand</td>
</tr>
<tr>
<td style="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:areaItemType</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_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_OperatingLeasesRentExpenseNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.</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/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123406913&amp;loc=d3e41499-112717<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_OperatingLeasesRentExpenseNet</td>
</tr>
<tr>
<td style="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_PaymentsForProceedsFromTenantAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net cash outflow or inflow from monetary allowance granted by the landlord to a tenant to entice tenant to move into landlords building which will enable the tenant to prepare the leased premises for tenants occupancy.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3179-108585<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_PaymentsForProceedsFromTenantAllowance</td>
</tr>
<tr>
<td style="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_WorkersCompensationDiscountPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percent discount applied to worker's compensation reserve liability to reduce the reserve to present 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=116884095&amp;loc=d3e14754-158437<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124506351&amp;loc=d3e14931-158439<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_WorkersCompensationDiscountPercent</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777559472">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_CapitalizedComputerSoftwareNetAbstract', window );"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS</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_CapitalizedComputerSoftwareGross', window );">Capitalized Software Development Costs, Gross</a></td>
<td class="nump">$ 125,704<span></span>
</td>
<td class="nump">$ 125,704<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_CapitalizedComputerSoftwareAccumulatedAmortization', window );">Less: Accumulated Amortization</a></td>
<td class="num">(125,704)<span></span>
</td>
<td class="num">(115,229)<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_CapitalizedComputerSoftwareNet', window );">Capitalized Software Development Costs, Net</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 10,475<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_CapitalizedComputerSoftwareAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 each balance sheet presented, the amount of accumulated amortization for capitalized computer software costs.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<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_CapitalizedComputerSoftwareAccumulatedAmortization</td>
</tr>
<tr>
<td style="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_CapitalizedComputerSoftwareGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated amortization of capitalized costs for computer software, including but not limited to, acquired and internally developed computer software.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<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_CapitalizedComputerSoftwareGross</td>
</tr>
<tr>
<td style="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_CapitalizedComputerSoftwareNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of capitalized computer software costs net of accumulated amortization 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<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_CapitalizedComputerSoftwareNet</td>
</tr>
<tr>
<td style="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_CapitalizedComputerSoftwareNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CapitalizedComputerSoftwareNetAbstract</td>
</tr>
<tr>
<td style="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>74
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777255600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_CapitalizedComputerSoftwareNetAbstract', window );"><strong>CAPITALIZED SOFTWARE DEVELOPMENT COSTS</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_tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts', window );">Amortization of Capitalized Software Development Costs</a></td>
<td class="nump">$ 10,475<span></span>
</td>
<td class="nump">$ 41,900<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CapitalizedComputerSoftwareNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CapitalizedComputerSoftwareNetAbstract</td>
</tr>
<tr>
<td style="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>75
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766763920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CLOUD COMPUTING SERVICE CONTRACT (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_RisksAndUncertaintiesAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ProceedsFromServiceContractOfReceivables', window );">Annual payments on contract received</a></td>
<td class="nump">$ 30,409<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_PrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66,857<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_tomz_AnnualPaymentsOnContractTerm', window );">Annual payments on contract term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<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_CostOfGoodsAndServicesSoldAmortization', window );">Amortization expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14,495<span></span>
</td>
<td class="nump">$ 14,432<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AnnualPaymentsOnContractTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AnnualPaymentsOnContractTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ProceedsFromServiceContractOfReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ProceedsFromServiceContractOfReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CostOfGoodsAndServicesSoldAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_CostOfGoodsAndServicesSoldAmortization</td>
</tr>
<tr>
<td style="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_PrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</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_PrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="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_RisksAndUncertaintiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RisksAndUncertaintiesAbstract</td>
</tr>
<tr>
<td style="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>76
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766939792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details) - Stock Warrant [Member] - $ / shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</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_tomz_OutstandingBeginningOfPeriod', window );">Outstanding, beginning of period</a></td>
<td class="nump">143,000<span></span>
</td>
<td class="nump">132,500<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 );">Granted</a></td>
<td class="nump">270,000<span></span>
</td>
<td class="nump">10,500<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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod', window );">Exercised</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Expired</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_tomz_OutstandingEndOfPeriod', window );">Outstanding, end of period</a></td>
<td class="nump">413,000<span></span>
</td>
<td class="nump">143,000<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_tomz_WeightedAverageExercisePriceAbstract', window );"><strong>Weighted Average Exercise Price</strong></a></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_tomz_WeightedAverageExercisePriceOutstandingBeginningBalance', window );">Weighted average exercise price outstanding, Beginning balance</a></td>
<td class="nump">$ 2.66<span></span>
</td>
<td class="nump">$ 2.72<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_tomz_WeightedAverageExercisePriceGranted', window );">Weighted average exercise price, Granted</a></td>
<td class="nump">1.12<span></span>
</td>
<td class="nump">1.93<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_tomz_WeightedAverageExercisePriceExercised', window );">Weighted average exercise price, Exercised</a></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_tomz_WeightedAverageExercisePriceExpired', window );">Weighted average exercise price, Expired</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_tomz_WeightedAverageExercisePriceOutstandingEndingBalance', window );">Weighted average exercise price outstanding, Ending balance</a></td>
<td class="nump">$ 1.65<span></span>
</td>
<td class="nump">$ 2.66<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_OutstandingBeginningOfPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OutstandingBeginningOfPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_OutstandingEndOfPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OutstandingEndOfPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_WeightedAverageExercisePriceAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageExercisePriceAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_WeightedAverageExercisePriceExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageExercisePriceExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_WeightedAverageExercisePriceExpired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageExercisePriceExpired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_WeightedAverageExercisePriceGranted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageExercisePriceGranted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_WeightedAverageExercisePriceOutstandingBeginningBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageExercisePriceOutstandingBeginningBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_WeightedAverageExercisePriceOutstandingEndingBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WeightedAverageExercisePriceOutstandingEndingBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 presentations that combine terminations, 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 or that expired.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_StatementClassOfStockAxis=tomz_StockWarrantMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=tomz_StockWarrantMember</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>77
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766978032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 1)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2022 </div>
<div>$ / shares </div>
<div>shares</div>
</th></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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">413,000<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">5 years 6 months 29 days<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_tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">6 years 7 months 17 days<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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers', window );">Number of Exercisable Options</a></td>
<td class="nump">413,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">2,792,335<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 2.25<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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 1.65<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOneMember', window );">$0.80</a></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 );">Outstanding, Beginning Balance</a></td>
<td class="nump">27,500<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">27,500<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.80<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSevenMember', window );">$7.06</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">12,500<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">3 years 18 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">12,500<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 4.40<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeThreeMember', window );">$0.96</a></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 );">Outstanding, Beginning Balance</a></td>
<td class="nump">25,000<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">1 year 7 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">25,000<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.96<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFourMember', window );">$1.93</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">10,500<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">4 years 21 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">10,500<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 1.93<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFiveMember', window );">$2.16</a></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 );">Outstanding, Beginning Balance</a></td>
<td class="nump">5,000<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">5,000<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 2.16<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeTwoMember', window );">$0.88</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">31,250<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">1 year 3 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">31,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.88<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeEightMember', window );">$7.06</a></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 );">Outstanding, Beginning Balance</a></td>
<td class="nump">31,250<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years 9 months<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">31,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 7.06<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeNineMember', window );">$1.12</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">270,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">9 years 21 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">270,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 1.12<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual term for option awards outstanding, 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOneMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSevenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSevenMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeThreeMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFourMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFourMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFiveMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeTwoMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeEightMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeEightMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeNineMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeNineMember</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>78
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766653184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 2) - Warrants - $ / shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Number of Options</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 );">Outstanding, beginning of period</a></td>
<td class="nump">3,381,021<span></span>
</td>
<td class="nump">2,049,133<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,606,888<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_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod', window );">Exercised</a></td>
<td class="nump">31,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Expired</a></td>
<td class="num">(557,436)<span></span>
</td>
<td class="num">(262,500)<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 );">Outstanding, end of period</a></td>
<td class="nump">2,792,335<span></span>
</td>
<td class="nump">3,381,021<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract', window );"><strong>Weighted Average Exercise Price</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, beginning of period</a></td>
<td class="nump">$ 2.22<span></span>
</td>
<td class="nump">$ 2.55<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.73<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Exercised</a></td>
<td class="nump">0.21<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Expired</a></td>
<td class="num">(2.23)<span></span>
</td>
<td class="num">(2.65)<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, end of period</a></td>
<td class="nump">$ 2.25<span></span>
</td>
<td class="nump">$ 2.22<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 presentations that combine terminations, 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 or that expired.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of the plan that expired.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 per share amount at which grantees can acquire shares of common stock by exercise of 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember</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>79
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152770600352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 3)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2022 </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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">5 years 6 months 29 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">2,792,335<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">2,792,335<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 2.25<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=tomz_WarrantsOneMember', window );">$ 0.64</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">10 years 10 months 20 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">31,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">31,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 0.64<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=tomz_WarrantsTwoMember', window );">$ 0.80</a></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">11 years 29 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">125,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">125,000<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 0.80<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=tomz_WarrantsThreeMember', window );">$ 0.96</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">9 years 11 months 23 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">442,708<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">442,708<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 0.96<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=tomz_WarrantsFourMember', window );">$ 1.12</a></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">1 year 3 months 18 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">6,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">6,250<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 1.12<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=tomz_WarrantsFiveMember', window );">$ 1.20</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">1 year 10 months 17 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">175,000<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">175,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 1.20<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=tomz_WarrantsSevenMember', window );">$ 1.68</a></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">3 years 9 months<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">1,434,721<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">1,434,721<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 1.68<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=tomz_WarrantsEightMember', window );">$ 2.18</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">3 years 9 months<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">172,167<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">172,167<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 2.18<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=tomz_WarrantsTenMember', window );">$ 4.00</a></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">7 years 3 months 25 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">28,750<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">28,750<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 4.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_AwardTypeAxis=tomz_WarrantsElevenMember', window );">$ 6.95</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">7 years 9 months<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">375,000<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">375,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 6.95<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=tomz_WarrantsTwelveMember', window );">$ 8.40</a></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">7 months 17 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">1,489<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">1,489<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 8.40<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equity instruments other than options outstanding, including both vested and non-vested instruments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual term for option awards outstanding, 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=tomz_WarrantsOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsOneMember</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=tomz_WarrantsTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsTwoMember</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=tomz_WarrantsThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsThreeMember</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=tomz_WarrantsFourMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsFourMember</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=tomz_WarrantsFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsFiveMember</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=tomz_WarrantsSevenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsSevenMember</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=tomz_WarrantsEightMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsEightMember</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=tomz_WarrantsTenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsTenMember</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=tomz_WarrantsElevenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsElevenMember</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=tomz_WarrantsTwelveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsTwelveMember</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>80
<FILENAME>R61.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766408208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">1 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 11, 2021</div></th>
<th class="th"><div>Nov. 30, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</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_tomz_CommonStockShareSold', window );">Common stock share sold</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">2,869,442<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_tomz_IssuedWarrantsInConcurrentPrivatePlacement', window );">Issued warrants in concurrent private placement</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">1,434,721<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_tomz_IssuedWarrantsInConcurrentPlacementAgent', window );">Issued warrants in concurrent placement agent</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">172,167<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_tomz_TermsOfOutstandingWarrantsToPurchase', window );">Terms of outstanding warrants to purchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 593,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2.18<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_ProceedsFromIssuanceOfWarrants', window );">Proceeds from issuance of warrants</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">$ 4,581,651<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 4,581,651<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_tomz_ExercisePriceOfWarrant', window );">Exercise price of warrant</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">$ 1.68<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_tomz_WarrantAmendmentDescription', window );">Warrant amendment, description</a></td>
<td class="text">In connection with the Warrant Amendment, TOMI repurchased the warrant from Dr. Shane (the &#8220;Repurchase&#8221;) for an aggregate cash consideration of $314,500, representing a 15% discount of the net exercise cash value of the Warrant, which was calculated using the closing price of the Common Stock on the Nasdaq on February 11, 2021 of $5.36, less the exercise price of the warrants in the amount of $2.40. On the same date, the Warrant Amendment and the Repurchase was considered, approved and adopted by a disinterested majority of TOMI&#8217;s board of directors.<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_tomz_AggregateCashConsideration', window );">Aggregate cash consideration</a></td>
<td class="nump">$ 314,500<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_tomz_WarrantsIssuedUponPurchaseShareOfCommonStock', window );">Warrants issued upon purchase share of common stock</a></td>
<td class="nump">125,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>
<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_CommonStockValue', window );">Common stock value</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">197,640<span></span>
</td>
<td class="nump">$ 196,810<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.00%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.31%<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">&#160;<span></span>
</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>
</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 );">Share based compensation expense</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">$ 356,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_MinimumMember', window );">Minimum [Member]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_GrantFairValueOfPerShare', window );">Grant fair value of per share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.17<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">83.00%<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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 month 13 days<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_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_GrantFairValueOfPerShare', window );">Grant fair value of per share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.65<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">163.00%<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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">11 years 2 months 23 days<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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Cumulative Convertible Series A 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>
</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_PreferredStockSharesAuthorized', window );">Preferred stock 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="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,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_PreferredStockSharesIssued', window );">Cumulative Convertible Preferred Stock; Shares Issued</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">63,750<span></span>
</td>
<td class="nump">63,750<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_PreferredStockSharesOutstanding', window );">Cumulative Convertible Preferred Stock; Shares Outstanding</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">63,750<span></span>
</td>
<td class="nump">63,750<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_PreferredStockParOrStatedValuePerShare', window );">Cumulative Convertible Preferred Stock; Par Value</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.01<span></span>
</td>
<td class="nump">$ 0.01<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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Cumulative Convertible Series B 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>
</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_PreferredStockSharesAuthorized', window );">Preferred stock 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="nump">4,000<span></span>
</td>
<td class="nump">4,000<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_PreferredStockSharesIssued', window );">Cumulative Convertible Preferred Stock; Shares Issued</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>
</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_PreferredStockSharesOutstanding', window );">Cumulative Convertible Preferred Stock; Shares Outstanding</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>
</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_AwardDateAxis=tomz_JanuaryTwentyTwentyTwoMember', window );">January 2022 [Member]</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_StockIssuedDuringPeriodSharesNewIssues', window );">Common stock share issued</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">51,750<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_CommonStockValue', window );">Common stock value</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">$ 228,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_AwardDateAxis=tomz_JanuaryTwentyTwentyOneMember', window );">January 2021 [Member]</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_CommonStockValue', window );">Common stock value</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="nump">$ 228,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_srt_TitleOfIndividualAxis=tomz_PrivatePlacementsMember', window );">Private Placement [Members]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ExercisePriceOfWarrant', window );">Exercise price of warrant</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">1.68<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_srt_TitleOfIndividualAxis=tomz_PlacementAgentMember', window );">Placement Agent [Members]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ExercisePriceOfWarrant', window );">Exercise price of warrant</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">$ 2.18<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_WarrantsAndRightsOutstanding', window );">Warrant issued</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">$ 172,167<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_srt_TitleOfIndividualAxis=tomz_ChiefOperatingOfficersMember', window );">CEO [Member] | Stock Options</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_GrantFairValueOfPerShare', window );">Grant fair value of per share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.03<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">156.00%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.00%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.65%<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_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans', window );">Aggregate shares purchase of stock option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">172,500<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_tomz_FairValueOfStockOption', window );">Fair value of stock option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 178,281<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.12<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_srt_TitleOfIndividualAxis=tomz_ChiefOperatingOfficersMember', window );">CEO [Member] | January Twenty Two [Member] | Stock Option [Member]</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_GrantFairValueOfPerShare', window );">Grant fair value of per share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.03<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_tomz_WarrantsIssuedUponPurchaseShareOfCommonStock', window );">Warrants issued upon purchase share of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">40,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">156.00%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.00%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.65%<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_tomz_FairValueOfStockOption', window );">Fair value of stock option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 41,340<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.12<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_tomz_AggregateCashConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AggregateCashConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_CommonStockShareSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and</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;">tomz_CommonStockShareSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ExercisePriceOfWarrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ExercisePriceOfWarrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_FairValueOfStockOption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_FairValueOfStockOption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_GrantFairValueOfPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_GrantFairValueOfPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_IssuedWarrantsInConcurrentPlacementAgent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_IssuedWarrantsInConcurrentPlacementAgent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_IssuedWarrantsInConcurrentPrivatePlacement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_IssuedWarrantsInConcurrentPrivatePlacement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_TermsOfOutstandingWarrantsToPurchase">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_TermsOfOutstandingWarrantsToPurchase</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_WarrantAmendmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WarrantAmendmentDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_WarrantsIssuedUponPurchaseShareOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WarrantsIssuedUponPurchaseShareOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 term of the deferred compensation arrangement, 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 55<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=6409961&amp;loc=d3e20487-108367<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1</td>
</tr>
<tr>
<td style="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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<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_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="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_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="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_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<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_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="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_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="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_ProceedsFromIssuanceOfWarrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 issuance of rights to purchase common shares at predetermined price (usually issued together with corporate 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<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_ProceedsFromIssuanceOfWarrants</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 risk-free interest rate assumption that is used in valuing an option on its own 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="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_WarrantsAndRightsOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of outstanding derivative securities that permit the holder the right to purchase securities (usually equity) from the issuer at a specified price.</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_WarrantsAndRightsOutstanding</td>
</tr>
<tr>
<td style="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_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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</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_AwardDateAxis=tomz_JanuaryTwentyTwentyTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_JanuaryTwentyTwentyTwoMember</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_AwardDateAxis=tomz_JanuaryTwentyTwentyOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_JanuaryTwentyTwentyOneMember</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_TitleOfIndividualAxis=tomz_PrivatePlacementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TitleOfIndividualAxis=tomz_PrivatePlacementsMember</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_TitleOfIndividualAxis=tomz_PlacementAgentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TitleOfIndividualAxis=tomz_PlacementAgentMember</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_TitleOfIndividualAxis=tomz_ChiefOperatingOfficersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TitleOfIndividualAxis=tomz_ChiefOperatingOfficersMember</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_StatementClassOfStockAxis=tomz_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=tomz_StockOptionsMember</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_AwardDateAxis=tomz_JanuaryTwentyTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_JanuaryTwentyTwoMember</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_StatementClassOfStockAxis=us-gaap_StockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_StockOptionMember</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>81
<FILENAME>R62.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152773952992">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONTRACTS AND AGREEMENTS (Details)<br></strong></div></th>
<th class="th">
<div>Dec. 31, 2022 </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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>CONTRACTS AND AGREEMENTS</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_ContractualObligationDueInSecondYear', window );">December 31, 2023</a></td>
<td class="nump">$ 30,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_ContractualObligationDueInThirdYear', window );">December 31, 2024</a></td>
<td class="nump">30,000<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_ContractualObligationDueInFourthYear', window );">December 31, 2025</a></td>
<td class="nump">0<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_ContractualObligation', window );">Total Minimum Payments</a></td>
<td class="nump">$ 60,000<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_ContractualObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual obligation, including but not limited to, long-term debt, capital lease obligations, operating lease obligations, purchase obligations, and other commitments.</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_ContractualObligation</td>
</tr>
<tr>
<td style="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_ContractualObligationDueInFourthYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual obligation 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>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_ContractualObligationDueInFourthYear</td>
</tr>
<tr>
<td style="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_ContractualObligationDueInSecondYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual obligation 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>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_ContractualObligationDueInSecondYear</td>
</tr>
<tr>
<td style="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_ContractualObligationDueInThirdYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual obligation 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>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_ContractualObligationDueInThirdYear</td>
</tr>
<tr>
<td style="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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="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>82
<FILENAME>R63.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152770497392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONTRACTS AND AGREEMENTS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 22, 2020</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Oct. 01, 2020</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_TitleOfIndividualAxis=tomz_BoardOfMembersMember', window );">Board of Members</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_PaymentForManagementFee', window );">Increased annual fee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 40,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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issued shares of common stock during period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">51,750<span></span>
</td>
<td class="nump">50,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_StockIssuedDuringPeriodValueIssuedForServices', window );">Issued shares of common stock during period, value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 54,000<span></span>
</td>
<td class="nump">$ 48,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_srt_TitleOfIndividualAxis=tomz_CommitteeChairpersonMember', window );">Committee Chairperson</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_PaymentForManagementFee', window );">Increased annual fee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 45,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_PlanNameAxis=tomz_ExecutiveAgreementsWithHaldenSShaneMember', window );">Executive Agreements (Halden S. Shane)</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_TermOfAgreement', window );">Term of agreement</a></td>
<td class="text">three 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>
</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_PlanNameAxis=tomz_ExecutiveAgreementsWithElissaJShaneMember', window );">Executive Agreements (Elissa J. Shane)</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_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights', window );">Options full consideration of the amount entitled</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">30,409<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_tomz_TermOfAgreement', window );">Term of agreement</a></td>
<td class="text">three 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>
</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_SalariesAndWages', window );">Base annual salary</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 270,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_ClassOfWarrantOrRightOutstanding', window );">Warrants</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="nump">93,750<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_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight', window );">Warrant to purchase shares of 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="nump">93,750<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_TermOfAgreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_TermOfAgreement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 securities into which each warrant or right may be converted. For example, but not limited to, each warrant may be converted into two 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;">us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight</td>
</tr>
<tr>
<td style="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_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21475-112644<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_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights</td>
</tr>
<tr>
<td style="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_ClassOfWarrantOrRightOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 warrants or rights 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;">us-gaap_ClassOfWarrantOrRightOutstanding</td>
</tr>
<tr>
<td style="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_PaymentForManagementFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 paid to managing member or general partner for management of the day-to-day business functions of the limited liability company (LLC) or limited partnership (LP).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3367-108585<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39549-107864<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_PaymentForManagementFee</td>
</tr>
<tr>
<td style="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_SalariesAndWages">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 salary and wage arising from service rendered by nonofficer employee. Excludes allocated cost, labor-related nonsalary expense, and direct and overhead labor cost included in cost of good and service sold.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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_SalariesAndWages</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodValueIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of stock issued in lieu of cash for services contributed to the entity. Value of the stock issued includes, but is not limited to, services contributed by vendors and founders.</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_StockIssuedDuringPeriodValueIssuedForServices</td>
</tr>
<tr>
<td style="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_TitleOfIndividualAxis=tomz_BoardOfMembersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TitleOfIndividualAxis=tomz_BoardOfMembersMember</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_TitleOfIndividualAxis=tomz_CommitteeChairpersonMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TitleOfIndividualAxis=tomz_CommitteeChairpersonMember</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_PlanNameAxis=tomz_ExecutiveAgreementsWithHaldenSShaneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=tomz_ExecutiveAgreementsWithHaldenSShaneMember</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_PlanNameAxis=tomz_ExecutiveAgreementsWithElissaJShaneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=tomz_ExecutiveAgreementsWithElissaJShaneMember</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>83
<FILENAME>R64.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766376448">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_AccruedLiabilitiesAndOtherLiabilitiesAbstract', window );"><strong>ACCRUED EXPENSES AND OTHER 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_EmployeeRelatedLiabilitiesCurrentAndNoncurrent', window );">Commissions</a></td>
<td class="nump">$ 442,805<span></span>
</td>
<td class="nump">$ 228,665<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_AccruedPayrollTaxesCurrentAndNoncurrent', window );">Payroll And Related Costs</a></td>
<td class="nump">136,000<span></span>
</td>
<td class="nump">241,434<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_tomz_DirectorFeesCurrentAndNoncurrent', window );">Director Fees</a></td>
<td class="nump">34,650<span></span>
</td>
<td class="nump">31,250<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_tomz_SalesTaxPayable', window );">Sales Tax Payable</a></td>
<td class="num">(1,351)<span></span>
</td>
<td class="nump">19,411<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_ExtendedProductWarrantyAccrualCurrent', window );">Accrued Warranty (note 14)</a></td>
<td class="nump">68,000<span></span>
</td>
<td class="nump">68,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_OtherAccruedLiabilitiesCurrentAndNoncurrent', window );">Other Accrued Expenses</a></td>
<td class="nump">48,599<span></span>
</td>
<td class="nump">75,848<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_AccruedLiabilitiesAndOtherLiabilities', window );">Total</a></td>
<td class="nump">$ 728,703<span></span>
</td>
<td class="nump">$ 664,608<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_DirectorFeesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DirectorFeesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_SalesTaxPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SalesTaxPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nor invoiced, and liabilities classified as 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;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="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_AccruedLiabilitiesAndOtherLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesAndOtherLiabilitiesAbstract</td>
</tr>
<tr>
<td style="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_AccruedPayrollTaxesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 obligations incurred and payable for statutory payroll taxes incurred through that date and withheld from employees pertaining to services received from them, including entity's matching share of the employees FICA taxes and contributions to the state and federal unemployment insurance programs.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.15(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<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_AccruedPayrollTaxesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="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_EmployeeRelatedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.15(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<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_EmployeeRelatedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="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_ExtendedProductWarrantyAccrualCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid within one year of the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_ExtendedProductWarrantyAccrualCurrent</td>
</tr>
<tr>
<td style="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_OtherAccruedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.15(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<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_OtherAccruedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="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>84
<FILENAME>R65.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152766650160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED WARRANTY (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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>ACCRUED WARRANTY</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_ExtendedProductWarrantyAccrual', window );">Beginning Accrued Warranty Costs</a></td>
<td class="nump">$ 68,000<span></span>
</td>
<td class="nump">$ 68,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_ProductWarrantyAccrualPeriodIncreaseDecrease', window );">Provision For Warranty Expense</a></td>
<td class="nump">24,158<span></span>
</td>
<td class="nump">75,618<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_tomz_SettlementOfWarrantyClaims', window );">Settlement Of Warranty Claims</a></td>
<td class="num">(24,158)<span></span>
</td>
<td class="num">(75,618)<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_ExtendedProductWarrantyAccrual', window );">Ending Accrued Warranty Cost</a></td>
<td class="nump">$ 68,000<span></span>
</td>
<td class="nump">$ 68,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_SettlementOfWarrantyClaims">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SettlementOfWarrantyClaims</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_ExtendedProductWarrantyAccrual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 as of the balance sheet date of the aggregate extended product warranty liability. Does not include the ending balance for the standard product warranty liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1),(c)(5)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<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_ExtendedProductWarrantyAccrual</td>
</tr>
<tr>
<td style="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_ProductWarrantyAccrualPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the standard and extended product warranty liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<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_ProductWarrantyAccrualPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R66.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152770555888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAXES (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current:</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_CurrentFederalTaxExpenseBenefit', window );">Federal</a></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_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(74,000)<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_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></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_CurrentIncomeTaxExpenseBenefit', window );">Current Income Tax Expense Benefit</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(74,000)<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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred:</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_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></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_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_DeferredIncomeTaxExpenseBenefit', window );">DeferredIncomeTaxExpenseBenefit</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_tomz_ProvisionForIncomeTaxes', window );">Provision for Income Taxes</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (74,000)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ProvisionForIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ProvisionForIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 foreign income tax expense (benefit) pertaining to income (loss) 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) pertaining to taxable income (loss) from continuing operations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<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_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<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_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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>86
<FILENAME>R67.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777558048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAXES (Details 1) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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 TAXES</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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">Income (Loss) from Continuing Operations before Income Taxes, Domestic</a></td>
<td class="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,509,585)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Income (Loss) from Continuing Operations before Income Taxes, Foreign</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest]</a></td>
<td class="num">$ (2,781,060)<span></span>
</td>
<td class="num">$ (4,509,585)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 earnings or loss from continuing operations before income taxes that is attributable to domestic 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic</td>
</tr>
<tr>
<td style="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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R68.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152777359360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAXES (Details 2) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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 TAXES</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_tomz_IncomeLossBeforeIncomeTax', window );">Income (Loss) before income tax</a></td>
<td class="num">$ (2,880,060)<span></span>
</td>
<td class="num">$ (4,509,585)<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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">US statutory corporate income tax rate</a></td>
<td class="nump">28.00%<span></span>
</td>
<td class="nump">28.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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Income tax expense computed at US statutory corporate income tax rate</a></td>
<td class="num">$ (806,417)<span></span>
</td>
<td class="num">$ (1,002,844)<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_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract', window );"><strong>Reconciling 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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance on deferred tax assets</a></td>
<td class="nump">553,005<span></span>
</td>
<td class="nump">1,334,294<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_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Provision to prior year tax return</a></td>
<td class="nump">36,032<span></span>
</td>
<td class="num">(60,646)<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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Incentive stock options and warrants</a></td>
<td class="nump">183,076<span></span>
</td>
<td class="nump">5,139<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_IncomeTaxReconciliationNondeductibleExpenseAmortization', window );">Gain Upon Debt Extinguishment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(116,083)<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_IncomeTaxReconciliationOtherReconcilingItems', window );">Other</a></td>
<td class="nump">34,034<span></span>
</td>
<td class="nump">25,894<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 expense (benefit)</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (74,086)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_IncomeLossBeforeIncomeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_IncomeLossBeforeIncomeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 domestic federal statutory tax rate applicable to pretax income (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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<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_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationNondeductibleExpenseAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_IncomeTaxReconciliationNondeductibleExpenseAmortization</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationOtherReconcilingItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_IncomeTaxReconciliationOtherReconcilingItems</td>
</tr>
<tr>
<td style="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_IncomeTaxReconciliationPriorYearIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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_IncomeTaxReconciliationPriorYearIncomeTaxes</td>
</tr>
<tr>
<td style="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>88
<FILENAME>R69.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152771173392">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INCOME TAXES (Details 3) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_ComponentsOfDeferredTaxAssetsAbstract', window );"><strong>Deferred tax 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_InventoryReserve', window );">Inventory Reserve</a></td>
<td class="nump">$ 27,000<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts', window );">Reserve for Bad Debt</a></td>
<td class="nump">470,000<span></span>
</td>
<td class="nump">470,000<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_tomz_DeferredTaxAssetsAccruedVacation', window );">Accrued Vacation</a></td>
<td class="nump">38,000<span></span>
</td>
<td class="nump">81,000<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_tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve', window );">Warranty Reserve</a></td>
<td class="nump">19,000<span></span>
</td>
<td class="nump">19,000<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_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangible Assets</a></td>
<td class="nump">257,000<span></span>
</td>
<td class="nump">404,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_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts', window );">Capitalized Research and Development</a></td>
<td class="nump">67,000<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_tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities', window );">Operating Lease Right-of-use Liabilities</a></td>
<td class="nump">241,000<span></span>
</td>
<td class="nump">267,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_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net Operating Losses</a></td>
<td class="nump">4,639,000<span></span>
</td>
<td class="nump">4,124,000<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_DeferredTaxAssetsValuationAllowance', window );">Valuation Allowance</a></td>
<td class="num">(5,332,000)<span></span>
</td>
<td class="num">(4,941,000)<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_DeferredTaxAssetsNet', window );">Deferred Tax Assets</a></td>
<td class="nump">426,000<span></span>
</td>
<td class="nump">424,000<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_ComponentsOfDeferredTaxLiabilitiesAbstract', window );"><strong>Deferred tax 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets', window );">Operating Lease Right-of-use Assets</a></td>
<td class="nump">217,000<span></span>
</td>
<td class="nump">277,000<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_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Property Plant and Equipment</a></td>
<td class="num">(209,000)<span></span>
</td>
<td class="num">(147,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_DeferredTaxLiabilities', window );">Total</a></td>
<td class="num">(426,000)<span></span>
</td>
<td class="num">(424,000)<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_DeferredTaxAssetsLiabilitiesNet', window );">Net Deferred Tax Assets and Liabilities</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DeferredTaxAssetsAccruedVacation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DeferredTaxAssetsAccruedVacation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_InventoryReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_InventoryReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ComponentsOfDeferredTaxAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ComponentsOfDeferredTaxAssetsAbstract</td>
</tr>
<tr>
<td style="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_ComponentsOfDeferredTaxLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ComponentsOfDeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsGoodwillAndIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.</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_DeferredTaxAssetsGoodwillAndIntangibleAssets</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<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_DeferredTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<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_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<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_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<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_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<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_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred tax liability attributable to taxable temporary differences from research and development costs.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<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_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<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_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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>89
<FILENAME>R70.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152773925504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAXES (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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 TAXES</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_OperatingLossCarryforwards', window );">Net Operating Loss Carryforwards</a></td>
<td class="nump">$ 17,479,000<span></span>
</td>
<td class="nump">$ 15,262,000<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_tomz_StateNetOperatingLossCarryforwards', window );">State Net Operating Loss Carryforwards</a></td>
<td class="nump">13,835,000<span></span>
</td>
<td class="nump">$ 12,386,000<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_tomz_NetDeferredTaxAssetsIncreasedValuationAllowance', window );">Net deferred tax assets increased valuation allowance</a></td>
<td class="nump">391,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_tomz_NetDeferredTaxAssetsValuationAllowance', window );">Net deferred tax assets valuation allowance</a></td>
<td class="num">$ (5,332,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_tomz_NetDeferredTaxAssetsIncreasedValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_NetDeferredTaxAssetsIncreasedValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_NetDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_NetDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_StateNetOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_StateNetOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<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_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="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>90
<FILENAME>R71.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152770552896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CUSTOMER CONCENTRATION (Details Narrative)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_ConcentrationRiskPercentage1', window );">Concentration Risk Percentage</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="nump">10.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_MajorCustomersAxis=tomz_OneCustomerMember', window );">One Customer</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">10.00%<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_MajorCustomersAxis=tomz_TwoCustomerMember', window );">Two Customer</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">14.00%<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_MajorCustomersAxis=tomz_ThreeCustomerMember', window );">Three Customer</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="text">&#160;<span></span>
</td>
<td class="nump">42.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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<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_srt_MajorCustomersAxis=tomz_OneCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_OneCustomerMember</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=tomz_TwoCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_TwoCustomerMember</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=tomz_ThreeCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_ThreeCustomerMember</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>91
<FILENAME>R72.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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140152770435792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUBSEQUENT EVENTS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2023</div></th>
<th class="th"><div>Nov. 30, 2022</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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<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=srt_ChiefExecutiveOfficerMember', window );">Chief Executive Officer [Member] | Subsequent Event</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_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Exercise price</a></td>
<td class="nump">$ 0.85<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_StockRepurchasedDuringPeriodShares', window );">Option to purchase</a></td>
<td class="nump">100,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_tomz_StockOptionValued', window );">Stock option valued</a></td>
<td class="nump">$ 75,635<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_tomz_StockOptionTerm', window );">Stock option term</a></td>
<td class="text">10 years<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_tomz_Volatility', window );">Volatility</a></td>
<td class="nump">139.00%<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_tomz_ExpectedDividendYield', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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_tomz_RiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="nump">3.59%<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_tomz_GrantDateFairValuePerShareOfCommonStock', window );">Grant date fair value per share of common stock</a></td>
<td class="nump">$ 0.76<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">10 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_RelatedPartyTransactionsByRelatedPartyAxis=srt_ChiefOperatingOfficerMember', window );">Chief Operating Officer [Member] | Subsequent Event</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_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Exercise price</a></td>
<td class="nump">$ 0.85<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_StockRepurchasedDuringPeriodShares', window );">Option to purchase</a></td>
<td class="nump">50,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_tomz_StockOptionValued', window );">Stock option valued</a></td>
<td class="nump">$ 37,817<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_tomz_StockOptionTerm', window );">Stock option term</a></td>
<td class="text">10 years<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_tomz_Volatility', window );">Volatility</a></td>
<td class="nump">139.00%<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_tomz_ExpectedDividendYield', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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_tomz_RiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="nump">3.59%<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_tomz_GrantDateFairValuePerShareOfCommonStock', window );">Grant date fair value per share of common stock</a></td>
<td class="nump">$ 0.76<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">10 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_RelatedPartyTransactionsByRelatedPartyAxis=srt_ChiefFinancialOfficerMember', window );">Chief Financial Officer | Subsequent Event</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_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Exercise price</a></td>
<td class="nump">$ 0.85<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_StockRepurchasedDuringPeriodShares', window );">Option to purchase</a></td>
<td class="nump">25,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_tomz_StockOptionValued', window );">Stock option valued</a></td>
<td class="nump">$ 18,909<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_tomz_StockOptionTerm', window );">Stock option term</a></td>
<td class="text">10 years<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_tomz_Volatility', window );">Volatility</a></td>
<td class="nump">139.00%<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_tomz_ExpectedDividendYield', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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_tomz_RiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="nump">3.59%<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_tomz_GrantDateFairValuePerShareOfCommonStock', window );">Grant date fair value per share of common stock</a></td>
<td class="nump">$ 0.76<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">10 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_RelatedPartyTransactionsByRelatedPartyAxis=srt_BoardOfDirectorsChairmanMember', window );">Board of Directors Chairman | Subsequent Event</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_ConversionOfStockSharesIssued1', window );">Common stock issued</a></td>
<td class="nump">60,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_ConversionOfStockAmountIssued1', window );">Common stock issued amount</a></td>
<td class="nump">$ 51,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_tomz_ExpectedDividendYield">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ExpectedDividendYield</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_GrantDateFairValuePerShareOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_GrantDateFairValuePerShareOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_RiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_RiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_StockOptionTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_StockOptionTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_StockOptionValued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_StockOptionValued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_Volatility">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_Volatility</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Exercise price per share or per unit of warrants or rights 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21475-112644<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_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1</td>
</tr>
<tr>
<td style="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_ConversionOfStockAmountIssued1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of the financial instrument issued [noncash or part noncash] in the conversion of stock. Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4304-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4313-108586<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4332-108586<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_ConversionOfStockAmountIssued1</td>
</tr>
<tr>
<td style="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_ConversionOfStockSharesIssued1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new shares issued in the conversion of stock in a noncash (or part noncash) transaction. Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4332-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4313-108586<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4304-108586<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_ConversionOfStockSharesIssued1</td>
</tr>
<tr>
<td style="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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 term of the deferred compensation arrangement, 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 55<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=6409961&amp;loc=d3e20487-108367<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_RelatedPartyTransactionsByRelatedPartyAxis=srt_ChiefExecutiveOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=srt_ChiefExecutiveOfficerMember</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_RelatedPartyTransactionsByRelatedPartyAxis=srt_ChiefOperatingOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=srt_ChiefOperatingOfficerMember</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_RelatedPartyTransactionsByRelatedPartyAxis=srt_ChiefFinancialOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=srt_ChiefFinancialOfficerMember</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_RelatedPartyTransactionsByRelatedPartyAxis=srt_BoardOfDirectorsChairmanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=srt_BoardOfDirectorsChairmanMember</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>92
<FILENAME>tomz_10k_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/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:tomz="http://tomz.com/20221231"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="tomz-20221231.xsd" xlink:type="simple"/>
    <context id="From2022-01-01to2022-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2023-01-01to2023-01-31_srt_BoardOfDirectorsChairmanMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:BoardOfDirectorsChairmanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefOperatingOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="AsOf2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="AsOf2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefOperatingOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_ThreeCustomerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:ThreeCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-03-31_tomz_TwoCustomerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-03-31_tomz_OneCustomerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:OneCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_BoardOfMembersMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:BoardOfMembersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:BoardOfMembersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2017-12-01to2017-12-31_tomz_CommitteeChairpersonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:CommitteeChairpersonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-12-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="From2017-12-01to2017-12-31_tomz_BoardOfMembersMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:BoardOfMembersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-12-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-10-01</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithElissaJShaneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-01</startDate>
            <endDate>2020-06-22</endDate>
        </period>
    </context>
    <context id="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithHaldenSShaneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-01</startDate>
            <endDate>2020-06-22</endDate>
        </period>
    </context>
    <context id="AsOf2020-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_JanuaryTwentyTwentyOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwentyOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_JanuaryTwentyTwentyTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwentyTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_JanuaryTwentyTwentyTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwentyTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-02-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2021-02-11</instant>
        </period>
    </context>
    <context id="From2021-02-01to2021-02-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-02-11</endDate>
        </period>
    </context>
    <context id="AsOf2021-09-30_tomz_PlacementAgentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:PlacementAgentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="AsOf2021-09-30_tomz_PrivatePlacementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:PrivatePlacementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JanuaryTwentyTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="From2022-11-01to2022-11-30_srt_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-11-01</startDate>
            <endDate>2022-11-30</endDate>
        </period>
    </context>
    <context id="From2022-11-01to2022-11-30_srt_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-11-01</startDate>
            <endDate>2022-11-30</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:ChiefOperatingOfficersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="From2022-11-01to2022-11-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2022-11-01</startDate>
            <endDate>2022-11-30</endDate>
        </period>
    </context>
    <context id="From2021-09-01to2021-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2021-09-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2021-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsTwelveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwelveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsElevenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsTenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsEightMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsSevenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsTwelveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwelveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsElevenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsTenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsEightMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsSevenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeEightMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeEightMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeSevenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeNineMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeNineMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_RangeOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeNineMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeNineMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeSevenMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeEightMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeEightMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_RangeOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_StockWarrantMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_StockWarrantMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-05-01to2021-05-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-05-31</endDate>
        </period>
    </context>
    <context id="From2018-04-01to2018-04-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2018-04-01</startDate>
            <endDate>2018-04-30</endDate>
        </period>
    </context>
    <context id="AsOf2018-04-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2018-04-30</instant>
        </period>
    </context>
    <context id="AsOf2022-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2022-09-30</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-07-07</instant>
        </period>
    </context>
    <context id="AsOf2021-09-30_tomz_EquityIncentivePlanOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_EquityIncentivePlanOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_us-gaap_SoftwareDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_us-gaap_SoftwareDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_SteraMistPRoductMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_UnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:UnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_GeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tomz:GeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_GeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tomz:GeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_UnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:UnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_SteraMistPRoductMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_tomz_ServiceAndTrainingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2020-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-03-07">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2023-03-07</instant>
        </period>
    </context>
    <context id="AsOf2022-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Pure">
        <measure>pure</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="From2022-01-01to2022-12-31">0000314227</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="From2022-01-01to2022-12-31">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate contextRef="From2022-01-01to2022-12-31">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus contextRef="From2022-01-01to2022-12-31">FY</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus contextRef="From2022-01-01to2022-12-31">2022</dei:DocumentFiscalYearFocus>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="AsOf2021-12-31" decimals="0" unitRef="Shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding contextRef="AsOf2021-12-31" decimals="0" unitRef="Shares">19680955</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding contextRef="AsOf2022-12-31" decimals="0" unitRef="Shares">19763955</us-gaap:CommonStockSharesOutstanding>
    <tomz:PreferredStockParOrStatedValue
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="USD">1000</tomz:PreferredStockParOrStatedValue>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">1678000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">68000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      unitRef="USD">39194</tomz:AmortizationOfTenantImprovementAllowance>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      unitRef="Shares">0</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="0"
      unitRef="Shares">0</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <tomz:WeightedAverageExercisePriceExercised
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      unitRef="USDPShares">0</tomz:WeightedAverageExercisePriceExercised>
    <tomz:WeightedAverageExercisePriceExercised
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="INF"
      unitRef="USDPShares">0</tomz:WeightedAverageExercisePriceExercised>
    <tomz:WeightedAverageExercisePriceExpired
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      unitRef="USDPShares">0</tomz:WeightedAverageExercisePriceExpired>
    <tomz:WeightedAverageExercisePriceExpired
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="INF"
      unitRef="USDPShares">0</tomz:WeightedAverageExercisePriceExpired>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      unitRef="Shares">0</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <tomz:ExercisePriceOfWarrant
      contextRef="AsOf2021-09-30_tomz_PrivatePlacementsMember"
      decimals="INF"
      unitRef="USDPShares">1.68</tomz:ExercisePriceOfWarrant>
    <us-gaap:CommonStockValue
      contextRef="AsOf2021-12-31_tomz_JanuaryTwentyTwentyOneMember"
      decimals="0"
      unitRef="USD">228000</us-gaap:CommonStockValue>
    <tomz:TermOfAgreement contextRef="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithElissaJShaneMember">three years</tomz:TermOfAgreement>
    <us-gaap:SalariesAndWages
      contextRef="From2022-01-01to2022-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      unitRef="USD">270000</us-gaap:SalariesAndWages>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      unitRef="Shares">93750</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight
      contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      unitRef="Shares">93750</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      unitRef="Pure">0.1</us-gaap:ConcentrationRiskPercentage1>
    <dei:DocumentType contextRef="From2022-01-01to2022-12-31">10-K</dei:DocumentType>
    <dei:DocumentType contextRef="From2022-01-01to2022-12-31">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="From2022-01-01to2022-12-31">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="From2022-01-01to2022-12-31">2022-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="From2022-01-01to2022-12-31">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="From2022-01-01to2022-12-31">000-09908</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="From2022-01-01to2022-12-31">TOMI ENVIRONMENTAL SOLUTIONS, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="From2022-01-01to2022-12-31">FL</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="From2022-01-01to2022-12-31">59-1947988</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="From2022-01-01to2022-12-31">8430 Spires Way</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="From2022-01-01to2022-12-31">Frederick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="From2022-01-01to2022-12-31">MD</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="From2022-01-01to2022-12-31">21701</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="From2022-01-01to2022-12-31">800</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="From2022-01-01to2022-12-31">525-1698</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="From2022-01-01to2022-12-31">Common Stock, par value $0.001 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="From2022-01-01to2022-12-31">TOMZ</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="From2022-01-01to2022-12-31">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="From2022-01-01to2022-12-31">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="From2022-01-01to2022-12-31">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="From2022-01-01to2022-12-31">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="From2022-01-01to2022-12-31">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="From2022-01-01to2022-12-31">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="From2022-01-01to2022-12-31">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="From2022-01-01to2022-12-31">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="From2022-01-01to2022-12-31">false</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany contextRef="From2022-01-01to2022-12-31">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="AsOf2022-06-30" decimals="0" unitRef="USD">10235000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="AsOf2023-03-07" decimals="INF" unitRef="Shares">19823955</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorFirmId contextRef="From2022-01-01to2022-12-31">89</dei:AuditorFirmId>
    <dei:AuditorName contextRef="From2022-01-01to2022-12-31">Rosenberg Rich Baker Berman, P.A.</dei:AuditorName>
    <dei:AuditorLocation contextRef="From2022-01-01to2022-12-31">Somerset, NJ</dei:AuditorLocation>
    <us-gaap:CashEquivalentsAtCarryingValue
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_689"
      unitRef="USD">3866733</us-gaap:CashEquivalentsAtCarryingValue>
    <us-gaap:CashEquivalentsAtCarryingValue
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_690"
      unitRef="USD">5317443</us-gaap:CashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_691"
      unitRef="USD">2772340</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_692"
      unitRef="USD">1964776</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_693"
      unitRef="USD">164150</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_694"
      unitRef="USD">235904</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:InventoryNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_695"
      unitRef="USD">4495999</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_696"
      unitRef="USD">4743280</us-gaap:InventoryNet>
    <us-gaap:DepositsAssetsCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_697"
      unitRef="USD">447052</us-gaap:DepositsAssetsCurrent>
    <us-gaap:DepositsAssetsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_698"
      unitRef="USD">288586</us-gaap:DepositsAssetsCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_699"
      unitRef="USD">388359</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_700"
      unitRef="USD">343573</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_701"
      unitRef="USD">12134633</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_702"
      unitRef="USD">12893562</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_703"
      unitRef="USD">1335331</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_704"
      unitRef="USD">1488319</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_706"
      unitRef="USD">1025736</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_707"
      unitRef="USD">956284</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_708"
      unitRef="USD">528996</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_709"
      unitRef="USD">583271</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_710"
      unitRef="USD">0</us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers>
    <us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_711"
      unitRef="USD">10476</us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_712"
      unitRef="USD">475103</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_713"
      unitRef="USD">341006</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssets
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_714"
      unitRef="USD">2029835</us-gaap:OtherAssets>
    <us-gaap:OtherAssets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_715"
      unitRef="USD">1891037</us-gaap:OtherAssets>
    <us-gaap:Assets
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_716"
      unitRef="USD">15499799</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_717"
      unitRef="USD">16272918</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_720"
      unitRef="USD">1761750</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_721"
      unitRef="USD">1054040</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_722"
      unitRef="USD">728703</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_723"
      unitRef="USD">664608</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:CustomerDepositsCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_724"
      unitRef="USD">699732</us-gaap:CustomerDepositsCurrent>
    <us-gaap:CustomerDepositsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_725"
      unitRef="USD">6000</us-gaap:CustomerDepositsCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_726"
      unitRef="USD">100282</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_727"
      unitRef="USD">91775</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_728"
      unitRef="USD">3290467</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_729"
      unitRef="USD">1816423</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_731"
      unitRef="USD">761132</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_732"
      unitRef="USD">861415</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_733"
      unitRef="USD">761132</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_734"
      unitRef="USD">861415</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_735"
      unitRef="USD">4051599</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_736"
      unitRef="USD">2677838</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      id="fid_764"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_765"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_770"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_738"
      unitRef="USD">638</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_739"
      unitRef="USD">638</us-gaap:PreferredStockValue>
    <tomz:PreferredStockParOrStatedValue
      contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_762"
      unitRef="USD">1000</tomz:PreferredStockParOrStatedValue>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_766"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_740"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_741"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2022-12-31"
      decimals="INF"
      id="fid_753"
      unitRef="USDPShares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_755"
      unitRef="Shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_758"
      unitRef="Shares">19763955</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_757"
      unitRef="Shares">19680955</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_742"
      unitRef="USD">197640</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_743"
      unitRef="USD">196810</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_744"
      unitRef="USD">57673559</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_745"
      unitRef="USD">56941209</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_746"
      unitRef="USD">-46423637</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_747"
      unitRef="USD">-43543577</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_748"
      unitRef="USD">11448200</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_749"
      unitRef="USD">13595080</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_750"
      unitRef="USD">15499799</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_751"
      unitRef="USD">16272918</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_778"
      unitRef="USD">8338099</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_779"
      unitRef="USD">7753582</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_780"
      unitRef="USD">3277644</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_781"
      unitRef="USD">3166891</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_782"
      unitRef="USD">5060455</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_783"
      unitRef="USD">4586691</us-gaap:GrossProfit>
    <us-gaap:ProfessionalFees
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_785"
      unitRef="USD">536311</us-gaap:ProfessionalFees>
    <us-gaap:ProfessionalFees
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_786"
      unitRef="USD">538093</us-gaap:ProfessionalFees>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_787"
      unitRef="USD">329164</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_788"
      unitRef="USD">294665</us-gaap:DepreciationAndAmortization>
    <us-gaap:SellingExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_789"
      unitRef="USD">1867013</us-gaap:SellingExpense>
    <us-gaap:SellingExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_790"
      unitRef="USD">1674466</us-gaap:SellingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_791"
      unitRef="USD">352238</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_792"
      unitRef="USD">572700</us-gaap:ResearchAndDevelopmentExpense>
    <tomz:ConsultingFees
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_793"
      unitRef="USD">215180</tomz:ConsultingFees>
    <tomz:ConsultingFees
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_794"
      unitRef="USD">326614</tomz:ConsultingFees>
    <us-gaap:OtherGeneralAndAdministrativeExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_795"
      unitRef="USD">4642548</us-gaap:OtherGeneralAndAdministrativeExpense>
    <us-gaap:OtherGeneralAndAdministrativeExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_796"
      unitRef="USD">6104363</us-gaap:OtherGeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_797"
      unitRef="USD">7942454</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_798"
      unitRef="USD">9510901</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_799"
      unitRef="USD">-2881999</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_800"
      unitRef="USD">-4924210</us-gaap:OperatingIncomeLoss>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_802"
      unitRef="USD">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_803"
      unitRef="USD">414583</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:InterestIncomeOther
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_804"
      unitRef="USD">1939</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_805"
      unitRef="USD">1076</us-gaap:InterestIncomeOther>
    <us-gaap:InterestExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_806"
      unitRef="USD">0</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_807"
      unitRef="USD">1034</us-gaap:InterestExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_808"
      unitRef="USD">1939</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_809"
      unitRef="USD">414625</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_810"
      unitRef="USD">-2880060</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_811"
      unitRef="USD">-4509585</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_812"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_813"
      unitRef="USD">-74086</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_814"
      unitRef="USD">-2880060</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_815"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_817"
      unitRef="USDPShares">-0.15</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_818"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_819"
      unitRef="USDPShares">-0.15</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_820"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_821"
      unitRef="Shares">19743544</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_822"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_823"
      unitRef="Shares">19743544</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_824"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:SharesIssued
      contextRef="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_825"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_827"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_826"
      unitRef="Shares">16761514</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_828"
      unitRef="USD">167616</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_829"
      unitRef="USD">52142398</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_830"
      unitRef="USD">-39108078</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_831"
      unitRef="USD">13202574</us-gaap:StockholdersEquity>
    <tomz:EquityCompensation
      contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_834"
      unitRef="USD">18354</tomz:EquityCompensation>
    <tomz:EquityCompensation
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_836"
      unitRef="USD">18354</tomz:EquityCompensation>
    <tomz:CommonStockIssuedForServicesProvidedShares
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_838"
      unitRef="Shares">50000</tomz:CommonStockIssuedForServicesProvidedShares>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_840"
      unitRef="USD">500</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_841"
      unitRef="USD">227500</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_843"
      unitRef="USD">228000</tomz:CommonStockIssuedForServicesProvidedAmount>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_845"
      unitRef="Shares">2869442</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_847"
      unitRef="USD">28694</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_848"
      unitRef="USD">4552957</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_850"
      unitRef="USD">4581651</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_854"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_855"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_856"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_858"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_857"
      unitRef="Shares">19680956</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_859"
      unitRef="USD">196810</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_860"
      unitRef="USD">56941209</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_861"
      unitRef="USD">-43543577</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_862"
      unitRef="USD">13595080</us-gaap:StockholdersEquity>
    <tomz:EquityCompensation
      contextRef="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_865"
      unitRef="USD">653843</tomz:EquityCompensation>
    <tomz:EquityCompensation
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_867"
      unitRef="USD">653843</tomz:EquityCompensation>
    <tomz:CommonStockIssuedForServicesProvidedShares
      contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_869"
      unitRef="Shares">51750</tomz:CommonStockIssuedForServicesProvidedShares>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_871"
      unitRef="USD">518</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_872"
      unitRef="USD">53820</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_874"
      unitRef="USD">54338</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:WarrantsAndOptionsExercisedShares
      contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_876"
      unitRef="Shares">31250</tomz:WarrantsAndOptionsExercisedShares>
    <tomz:WarrantsAndOptionsExercisedAmount
      contextRef="From2022-01-01to2022-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_878"
      unitRef="USD">312</tomz:WarrantsAndOptionsExercisedAmount>
    <tomz:WarrantsAndOptionsExercisedAmount
      contextRef="From2022-01-01to2022-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_879"
      unitRef="USD">24687</tomz:WarrantsAndOptionsExercisedAmount>
    <tomz:WarrantsAndOptionsExercisedAmount
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_881"
      unitRef="USD">25000</tomz:WarrantsAndOptionsExercisedAmount>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_885"
      unitRef="USD">-2880060</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_886"
      unitRef="USD">-2880060</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2022-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_887"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_889"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2022-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_888"
      unitRef="Shares">19763956</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_890"
      unitRef="USD">197640</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_891"
      unitRef="USD">57673559</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_892"
      unitRef="USD">-46423637</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_893"
      unitRef="USD">11448200</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_895"
      unitRef="USD">-2880060</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_896"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_899"
      unitRef="USD">329164</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_900"
      unitRef="USD">294665</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_901"
      unitRef="USD">157315</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_902"
      unitRef="USD">157315</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_903"
      unitRef="USD">10475</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_904"
      unitRef="USD">41902</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <tomz:EquityCompensationExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_905"
      unitRef="USD">653843</tomz:EquityCompensationExpense>
    <tomz:EquityCompensationExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_906"
      unitRef="USD">18354</tomz:EquityCompensationExpense>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_907"
      unitRef="USD">54338</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_908"
      unitRef="USD">228000</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_909"
      unitRef="USD">0</us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease>
    <us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_910"
      unitRef="USD">1288000</us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease>
    <us-gaap:InventoryLIFOReservePeriodCharge
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_911"
      unitRef="USD">95000</us-gaap:InventoryLIFOReservePeriodCharge>
    <us-gaap:InventoryLIFOReservePeriodCharge
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_912"
      unitRef="USD">0</us-gaap:InventoryLIFOReservePeriodCharge>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_913"
      unitRef="USD">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_914"
      unitRef="USD">414583</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_917"
      unitRef="USD">-807564</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_918"
      unitRef="USD">463925</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_919"
      unitRef="USD">152281</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_920"
      unitRef="USD">-961765</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_921"
      unitRef="USD">-44786</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_922"
      unitRef="USD">77732</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInDeposits
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_923"
      unitRef="USD">-158466</us-gaap:IncreaseDecreaseInDeposits>
    <us-gaap:IncreaseDecreaseInDeposits
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_924"
      unitRef="USD">100126</us-gaap:IncreaseDecreaseInDeposits>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_925"
      unitRef="USD">71754</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_926"
      unitRef="USD">-36953</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_927"
      unitRef="USD">-177474</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_928"
      unitRef="USD">-100149</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_930"
      unitRef="USD">707711</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_931"
      unitRef="USD">-447429</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_932"
      unitRef="USD">64095</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_933"
      unitRef="USD">166644</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInCustomerDeposits
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_934"
      unitRef="USD">693732</us-gaap:IncreaseDecreaseInCustomerDeposits>
    <us-gaap:IncreaseDecreaseInCustomerDeposits
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_935"
      unitRef="USD">-112880</us-gaap:IncreaseDecreaseInCustomerDeposits>
    <tomz:IncreaseDecreaseInLeaseLiabilities
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_936"
      unitRef="USD">-155622</tomz:IncreaseDecreaseInLeaseLiabilities>
    <tomz:IncreaseDecreaseInLeaseLiabilities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_937"
      unitRef="USD">-151088</tomz:IncreaseDecreaseInLeaseLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_938"
      unitRef="USD">-1234264</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_939"
      unitRef="USD">-3823683</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <tomz:CapitalizedPatentAndTrademarkCosts
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_941"
      unitRef="USD">-40570</tomz:CapitalizedPatentAndTrademarkCosts>
    <tomz:CapitalizedPatentAndTrademarkCosts
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_942"
      unitRef="USD">-126697</tomz:CapitalizedPatentAndTrademarkCosts>
    <tomz:PurchaseOfPropertyAndEquipment
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_943"
      unitRef="USD">-200876</tomz:PurchaseOfPropertyAndEquipment>
    <tomz:PurchaseOfPropertyAndEquipment
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_944"
      unitRef="USD">-512669</tomz:PurchaseOfPropertyAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_945"
      unitRef="USD">-241446</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_946"
      unitRef="USD">-639366</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfWarrants
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_948"
      unitRef="USD">0</us-gaap:ProceedsFromIssuanceOfWarrants>
    <us-gaap:ProceedsFromIssuanceOfWarrants
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_949"
      unitRef="USD">4581651</us-gaap:ProceedsFromIssuanceOfWarrants>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_950"
      unitRef="USD">25000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_951"
      unitRef="USD">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_952"
      unitRef="USD">25000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_953"
      unitRef="USD">4581651</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_954"
      unitRef="USD">-1450710</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_955"
      unitRef="USD">118602</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_956"
      unitRef="USD">5317443</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_957"
      unitRef="USD">5198842</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_958"
      unitRef="USD">3866733</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_959"
      unitRef="USD">5317443</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_961"
      unitRef="USD">-72086</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_962"
      unitRef="USD">75000</us-gaap:IncomeTaxesPaidNet>
    <tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_964"
      unitRef="USD">43377</tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets>
    <tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_965"
      unitRef="USD">118078</tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets>
    <us-gaap:NatureOfOperations contextRef="From2022-01-01to2022-12-31" id="fid_983">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 1. DESCRIPTION OF BUSINESS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;TOMI Environmental Solutions, Inc., a Florida corporation (&#x201c;TOMI&#x201d;, the &#x201c;Company&#x201d;, &#x201c;we&#x201d;, &#x201c;our&#x201d; and &#x201c;us&#x201d;) is a global provider of disinfection and decontamination essentials through our premier Binary Ionization Technology&#xae; (BIT&#x2122;) platform, under which we manufacture, license, service and sell our SteraMist&#xae; brand of products, including SteraMist&#xae; BIT&#x2122;, a hydrogen peroxide-based mist and fog. Our solution and process are environmentally friendly as the only biproduct from our decontamination process is oxygen and water in the form of humidity. Our solution is organically listed in the United States and Canada it is sustainably a green product with no or very little carbon footprint. Our business is organized into five divisions: Healthcare, Life Sciences, TOMI Service Network, Food Safety and Commercial.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Invented under a defense grant in association with the Defense Advanced Research Projects Agency (DARPA) of the U.S. Department of Defense, BIT&#x2122; is registered with the U.S. Environmental Protection Agency (EPA) and uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (&lt;strong&gt;&lt;sup style="vertical-align:super"&gt;.&lt;/sup&gt;&lt;/strong&gt;OH ion), known as ionized Hydrogen Peroxide (iHP&#x2122;). Represented by the SteraMist&#xae; brand of products, iHP&#x2122; produces a germ-killing aerosol that works like a visual non-caustic gas.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our products are designed to service a broad spectrum of commercial structures, including, but not limited to, hospitals and medical facilities, bio-safety labs, pharmaceutical facilities, meat and produce processing facilities, universities and research facilities, vivarium labs, other service industries including cruise ships, office buildings, hotel and motel rooms, schools, restaurants, military barracks, police and fire departments, prisons, and athletic facilities. Our products are also used in single-family homes and multi-unit residences. Additionally, our products have been listed on the EPA&#x2019;s List N as products that help combat COVID-19 and are actively being used for this purpose.&lt;/p&gt;</us-gaap:NatureOfOperations>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_966">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Principles of Consolidation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The accompanying consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Reclassification of Accounts&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Use of Estimates&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The preparation of the consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to accounts receivable, inventory, fair values of financial instruments, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Fair Value Measurements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of inputs, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:8%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 1:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Quoted prices in active markets for identical assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 2:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 3:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Cash and Cash Equivalents&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be in excess of insured limits. At December 31, 2022 and December 31, 2021, there were no cash equivalents. &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Accounts Receivable&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our accounts receivable are typically from credit worthy customers or, for certain international customers, are supported by pre-payments. For those customers to whom we extend credit, we perform periodic evaluations of their status and maintain allowances for potential credit losses as deemed necessary. We have a policy of reserving for doubtful accounts based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be in doubt. Account balances deemed to be uncollectible are charged to the allowance after all means of collection have been exhausted and the potential for recovery is considered remote.&#160; Bad debt expense for the years ended December 31, 2022 and 2021, was approximately $142,188 and $1,605,660, respectively. &#160;At December 31, 2022 and December 31, 2021, the allowance for doubtful accounts reserve was $1,678,000.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Inventories&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We expense costs to maintain certification to cost of goods sold as incurred.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;&lt;em&gt;We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable.&#160; Our reserve for obsolete inventory was $95,000 and $0 as of December 31, 2022 and December 31, 2021, respectively.&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Property and Equipment&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation for equipment, furniture and fixtures and vehicles commences once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the lives of the respective leases or service lives of the improvements, whichever is shorter.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Leases&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depends on classification as a finance or operating lease.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We have also elected the practical expedient to not separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense when recognized.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Capitalized Software Development Costs&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In accordance with ASC 985-20 regarding the development of software to be sold, leased, or marketed, we expense such costs as they are incurred until technological feasibility has been established, at and after which time those costs are capitalized until the product is available for general release to customers. The periodic expense for the amortization of capitalized software development costs will be included in cost of sales. Amortization expense for the years ended December 31, 2022 and 2021, was $10,475 and $41,900, respectively.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Accounts Payable&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As of December 31, 2022, two vendors accounted for approximately 55% of accounts payable. As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;For the year ended December 31, 2022, two vendors accounted for 67% of cost of sales. For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Accrued Warranties&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:40pt"&gt;Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. As of December 31, 2022, and December 31, 2021, our warranty reserve was $68,000. (See Note 14).&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Income Taxes&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes. Net deferred tax benefits have been fully reserved at December 31, 2022 and December 31, 2021. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Net Income (Loss) Per Share&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the treasury stock method and includes the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Potentially dilutive securities as of December 31, 2022 consisted of 2,792,335 shares of common stock issuable upon exercise of outstanding warrants, 413,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#x201c;Convertible Series A Preferred Stock&#x201d;).&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Potentially dilutive securities as of December 31, 2021 consisted of 3,381,021 shares of common stock issuable upon exercise of outstanding warrants, 143,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#x201c;Convertible Series A Preferred Stock&#x201d;).&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Diluted net income or (loss) per share is computed similarly to basic net income or (loss) per share except that the denominator is increased to include the number of additional shares of common stock that would have been outstanding if the potential shares of common stock had been issued and if such additional shares were dilutive. Options, warrants, &#160;and preferred stock 3.3 million and 3.6 million shares of common stock were outstanding at December 31, 2022 and 2021, respectively, but were excluded from the computation of diluted net loss per share at December 31, 2022 and 2021 due to the anti-dilutive effect on net loss per share.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Years Ended December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average number of shares of common stock outstanding:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Years Ended December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Basic weighted-average shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Effect of dilutive securities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Preferred Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Diluted Weighted Average Shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Net Income (Loss) Per Common Share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td colspan="10" style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Revenue Recognition&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606). We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Title and risk of loss generally pass to our customers upon shipment. Our Customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to bringing about resale. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Disaggregation of Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The following table presents our revenues disaggregated by revenue source.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Product and Service Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160; For The Years Ended &lt;/strong&gt;&lt;strong&gt;December 31,&lt;/strong&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Change &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,864,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,179,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;685,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,474,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,575,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(101,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,338,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7,754,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;584,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Revenue by Geographic Region&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160; For The Years Ended &lt;/strong&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Change &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;$&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,261,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,403,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(142,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,077,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,351,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;726,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,338,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7,754,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;584,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Product revenue includes sales from our standard and customized equipment, solution and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Costs to Obtain a Contract with a Customer&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Contract Balances&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As of December 31, 2022, and December 31, 2021 we did not have any unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Arrangements with Multiple Performance Obligations&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Significant Judgments&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Equity Compensation Expense&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We account for equity compensation expense in accordance with FASB ASC 718, &#x201c;Compensation&#x2014;Stock Compensation.&#x201d; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#x2019;s fair value.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#x2013;free interest rates are calculated based on continuously compounded risk&#x2013;free rates for the appropriate term.&#160;The expected term of the Company's warrants has been determined utilizing the "simplified" method for awards that qualify as "plain-vanilla" warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its Common Stock and does not intend to pay dividends on its Common Stock in the foreseeable future. The expected forfeiture rate is estimated based on management&#x2019;s best assessment.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;On July 7, 2017, our shareholders approved the 2016 Equity Incentive Plan, or the 2016 Plan. The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of common stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of common stock for numerous reasons, including, but not limited to, shares of common stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. For the year ended December 31, 2022 and 2021, we issued 51,750 and 50,000 shares of common stock, respectively, out of the 2016 Plan.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Concentrations of Credit Risk&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Long-Lived Assets Including Acquired Intangible Assets&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the years ended December 31, 2022 and 2021.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Advertising and Promotional Expenses&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;We expense advertising costs in the period in which they are incurred. Advertising and promotional expenses included in selling expenses for the years ended December 31, 2022 and 2021 were approximately $653,000 and $701,000, respectively.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Research and Development Expenses&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2022 and 2021, research and development expenses were approximately $352,000 and $573,000, respectively.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Business Segments&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product. A breakdown of revenue is presented in &#x201c;Revenue Recognition&#x201d; in Note 2 above.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Recent Accounting Pronouncements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;&lt;em&gt;Recently issued accounting pronouncements not yet adopted&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;In March 2022, the FASB issued ASU 2022-02, Troubled Debt Restructurings and Vintage Disclosures. This ASU eliminates the accounting guidance for troubled debt restructurings by creditors that have adopted ASU 2016-13, Measurement of Credit Losses on Financial Instruments, which we adopted on January 1, 2020. This ASU also enhances the disclosure requirements for certain loan refinancing and restructurings by creditors when a borrower is experiencing financial difficulty. In addition, the ASU amends the guidance on vintage disclosures to require entities to disclose current period gross write-offs by year of origination for financing receivables and net investments in leases within the scope of ASC 326-20. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU would be applied prospectively. Early adoption is also permitted, including adoption in an interim period. This ASU is currently not expected to have a material impact on our consolidated financial statements.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;In October 2021, the FASB issued ASU No. 2021-08, Accounting for Contract Assets and Contract Liabilities from Contracts with Customers (Topic 805). This ASU requires an acquirer in a business combination to recognize and measure contract assets and contract liabilities (deferred revenue) from acquired contracts using the revenue recognition guidance in Topic 606. At the acquisition date, the acquirer applies the revenue model as if it had originated the acquired contracts. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU should be applied prospectively. Early adoption is also permitted, including adoption in an interim period. If early adopted, the amendments are applied retrospectively to all business combinations for which the acquisition date occurred during the fiscal year of adoption. This ASU is currently not expected to have a material impact on our consolidated financial statements.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;&lt;em&gt;Recently adopted accounting pronouncements&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;In November 2021, the FASB issued ASU No. 2021-10, Government Assistance (Topic 832). This ASU requires business entities to disclose information about government assistance they receive if the transactions were accounted for by analogy to either a grant or a contribution accounting model. The disclosure requirements include the nature of the transaction and the related accounting policy used, the line items on the balance sheets and statements of operations that are affected and the amounts applicable to each financial statement line item and the significant terms and conditions of the transactions. The ASU is effective for annual periods beginning after December 15, 2021. We adopted ASU 2021-10 starting in 2022, which did not have a material impact on our consolidated financial statements.&lt;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_984">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The accompanying consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription contextRef="From2022-01-01to2022-12-31" id="fid_985">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.&lt;/p&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:UseOfEstimates contextRef="From2022-01-01to2022-12-31" id="fid_986">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The preparation of the consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to accounts receivable, inventory, fair values of financial instruments, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.&lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:FairValueMeasurementPolicyPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_987">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of inputs, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:8%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 1:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Quoted prices in active markets for identical assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 2:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 3:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.&lt;/p&gt;</us-gaap:FairValueMeasurementPolicyPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_988">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be in excess of insured limits. At December 31, 2022 and December 31, 2021, there were no cash equivalents. &lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ReceivablesPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_989">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our accounts receivable are typically from credit worthy customers or, for certain international customers, are supported by pre-payments. For those customers to whom we extend credit, we perform periodic evaluations of their status and maintain allowances for potential credit losses as deemed necessary. We have a policy of reserving for doubtful accounts based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be in doubt. Account balances deemed to be uncollectible are charged to the allowance after all means of collection have been exhausted and the potential for recovery is considered remote.&#160; Bad debt expense for the years ended December 31, 2022 and 2021, was approximately $142,188 and $1,605,660, respectively. &#160;At December 31, 2022 and December 31, 2021, the allowance for doubtful accounts reserve was $1,678,000.&lt;/p&gt;</us-gaap:ReceivablesPolicyTextBlock>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_76"
      unitRef="USD">142188</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_75"
      unitRef="USD">1605660</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_80"
      unitRef="USD">1678000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:InventoryPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_990">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We expense costs to maintain certification to cost of goods sold as incurred.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;&lt;em&gt;We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable.&#160; Our reserve for obsolete inventory was $95,000 and $0 as of December 31, 2022 and December 31, 2021, respectively.&lt;/em&gt;&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_82"
      unitRef="USD">95000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_81"
      unitRef="USD">0</us-gaap:InventoryValuationReserves>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_991">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation for equipment, furniture and fixtures and vehicles commences once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the lives of the respective leases or service lives of the improvements, whichever is shorter.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_992">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depends on classification as a finance or operating lease.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We have also elected the practical expedient to not separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense when recognized.&lt;/p&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_993">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In accordance with ASC 985-20 regarding the development of software to be sold, leased, or marketed, we expense such costs as they are incurred until technological feasibility has been established, at and after which time those costs are capitalized until the product is available for general release to customers. The periodic expense for the amortization of capitalized software development costs will be included in cost of sales. Amortization expense for the years ended December 31, 2022 and 2021, was $10,475 and $41,900, respectively.&lt;/p&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts
      contextRef="From2022-01-01to2022-12-31_us-gaap_SoftwareDevelopmentMember"
      decimals="0"
      id="fid_96"
      unitRef="USD">10475</tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts>
    <tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts
      contextRef="From2021-01-01to2021-12-31_us-gaap_SoftwareDevelopmentMember"
      decimals="0"
      id="fid_99"
      unitRef="USD">41900</tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts>
    <tomz:AccountsPayablePolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_994">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As of December 31, 2022, two vendors accounted for approximately 55% of accounts payable. As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;For the year ended December 31, 2022, two vendors accounted for 67% of cost of sales. For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales.&lt;/p&gt;</tomz:AccountsPayablePolicyTextBlock>
    <tomz:ConcentrationRiskPercentage
      contextRef="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember"
      decimals="INF"
      id="fid_102"
      unitRef="Pure">0.55</tomz:ConcentrationRiskPercentage>
    <tomz:ConcentrationRiskPercentage
      contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember"
      decimals="INF"
      id="fid_119"
      unitRef="Pure">0.53</tomz:ConcentrationRiskPercentage>
    <tomz:ConcentrationRiskPercentage
      contextRef="From2022-01-01to2022-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="INF"
      id="fid_104"
      unitRef="Pure">0.67</tomz:ConcentrationRiskPercentage>
    <tomz:ConcentrationRiskPercentage
      contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="INF"
      id="fid_106"
      unitRef="Pure">0.65</tomz:ConcentrationRiskPercentage>
    <us-gaap:ExtendedProductWarrantyPolicy contextRef="From2022-01-01to2022-12-31" id="fid_995">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:40pt"&gt;Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. As of December 31, 2022, and December 31, 2021, our warranty reserve was $68,000. (See Note 14).&lt;/p&gt;</us-gaap:ExtendedProductWarrantyPolicy>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_84"
      unitRef="USD">68000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_996">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes. Net deferred tax benefits have been fully reserved at December 31, 2022 and December 31, 2021. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_997">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the treasury stock method and includes the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Potentially dilutive securities as of December 31, 2022 consisted of 2,792,335 shares of common stock issuable upon exercise of outstanding warrants, 413,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#x201c;Convertible Series A Preferred Stock&#x201d;).&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Potentially dilutive securities as of December 31, 2021 consisted of 3,381,021 shares of common stock issuable upon exercise of outstanding warrants, 143,000 shares of common stock issuable upon outstanding options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Preferred A stock (&#x201c;Convertible Series A Preferred Stock&#x201d;).&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Diluted net income or (loss) per share is computed similarly to basic net income or (loss) per share except that the denominator is increased to include the number of additional shares of common stock that would have been outstanding if the potential shares of common stock had been issued and if such additional shares were dilutive. Options, warrants, &#160;and preferred stock 3.3 million and 3.6 million shares of common stock were outstanding at December 31, 2022 and 2021, respectively, but were excluded from the computation of diluted net loss per share at December 31, 2022 and 2021 due to the anti-dilutive effect on net loss per share.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Years Ended December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average number of shares of common stock outstanding:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Years Ended December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Basic weighted-average shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Effect of dilutive securities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Preferred Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Diluted Weighted Average Shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Net Income (Loss) Per Common Share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td colspan="10" style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_108"
      unitRef="Shares">2792335</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2022-01-01to2022-12-31_tomz_StockOptionsMember"
      decimals="0"
      id="fid_109"
      unitRef="Shares">413000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:CommonStockIssuableUponConversionOfOutstandingShares
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_94"
      unitRef="Shares">63750</tomz:CommonStockIssuableUponConversionOfOutstandingShares>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_120"
      unitRef="Shares">3381021</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2021-01-01to2021-12-31_tomz_StockOptionsMember"
      decimals="0"
      id="fid_121"
      unitRef="Shares">143000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:CommonStockIssuableUponConversionOfOutstandingShares
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_122"
      unitRef="Shares">63750</tomz:CommonStockIssuableUponConversionOfOutstandingShares>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2022-12-31_tomz_EquityIncentivePlanOneMember"
      decimals="-4"
      id="fid_112"
      unitRef="Shares">330000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-09-30_tomz_EquityIncentivePlanOneMember"
      decimals="-4"
      id="fid_113"
      unitRef="Shares">360000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1006">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Years Ended December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average number of shares of common stock outstanding:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Years Ended December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,435,499&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Basic weighted-average shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Effect of dilutive securities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:justify;"&gt;Preferred Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Diluted Weighted Average Shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;19,743,544&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;17,538,994&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Net Income (Loss) Per Common Share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.15&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td colspan="10" style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Note: Warrants, options and preferred stock for the years ended December 31, 2022 and 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_2"
      unitRef="USD">-2880060</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_3"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <tomz:NetLossAttributableToCommonShareholders
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_6"
      unitRef="USD">-2880060</tomz:NetLossAttributableToCommonShareholders>
    <tomz:NetLossAttributableToCommonShareholders
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_7"
      unitRef="USD">-4435499</tomz:NetLossAttributableToCommonShareholders>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_11"
      unitRef="Shares">19743544</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_12"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_15"
      unitRef="Shares">19743544</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_16"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <tomz:Basic
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_20"
      unitRef="USDPShares">-0.15</tomz:Basic>
    <tomz:Basic
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_21"
      unitRef="USDPShares">-0.25</tomz:Basic>
    <tomz:Diluted
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_24"
      unitRef="USDPShares">-0.15</tomz:Diluted>
    <tomz:Diluted
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_25"
      unitRef="USDPShares">-0.25</tomz:Diluted>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_28"
      unitRef="USD">-2880060</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_29"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_32"
      unitRef="Shares">19743544</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_33"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <tomz:WeightedAverageNumberOfDilutedShareOutstanding1
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_36"
      unitRef="Shares">19743544</tomz:WeightedAverageNumberOfDilutedShareOutstanding1>
    <tomz:WeightedAverageNumberOfDilutedShareOutstanding1
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_37"
      unitRef="Shares">17538994</tomz:WeightedAverageNumberOfDilutedShareOutstanding1>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_40"
      unitRef="USDPShares">-0.15</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_41"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_44"
      unitRef="USDPShares">-0.15</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_45"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareDiluted>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_998">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606). We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Title and risk of loss generally pass to our customers upon shipment. Our Customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to bringing about resale. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Disaggregation of Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The following table presents our revenues disaggregated by revenue source.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Product and Service Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160; For The Years Ended &lt;/strong&gt;&lt;strong&gt;December 31,&lt;/strong&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Change &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,864,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,179,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;685,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,474,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,575,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(101,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,338,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7,754,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;584,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Revenue by Geographic Region&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160; For The Years Ended &lt;/strong&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Change &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;$&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,261,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,403,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(142,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,077,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,351,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;726,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,338,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7,754,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;584,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Product revenue includes sales from our standard and customized equipment, solution and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Costs to Obtain a Contract with a Customer&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Contract Balances&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As of December 31, 2022, and December 31, 2021 we did not have any unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Arrangements with Multiple Performance Obligations&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Significant Judgments&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services.&lt;/p&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1007">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160; For The Years Ended &lt;/strong&gt;&lt;strong&gt;December 31,&lt;/strong&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Change &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,864,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,179,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;685,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,474,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,575,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(101,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,338,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7,754,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;584,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160; For The Years Ended &lt;/strong&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Change &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;$&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,261,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6,403,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(142,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,077,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,351,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;726,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,338,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7,754,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;584,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:Revenues
      contextRef="From2022-01-01to2022-12-31_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_64"
      unitRef="USD">6864000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_49"
      unitRef="USD">6179000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2022-01-01to2022-12-31_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_1113"
      unitRef="USD">685000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2022-01-01to2022-12-31_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_65"
      unitRef="USD">1474000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_67"
      unitRef="USD">1575000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2022-01-01to2022-12-31_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_1112"
      unitRef="USD">-101000</tomz:ChangesInRevenue>
    <tomz:ChangesInRevenue
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_1111"
      unitRef="USD">584000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2022-01-01to2022-12-31_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_69"
      unitRef="USD">6261000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_74"
      unitRef="USD">6403000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2022-01-01to2022-12-31_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_1114"
      unitRef="USD">-142000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2022-01-01to2022-12-31_tomz_InternationalMember"
      decimals="0"
      id="fid_70"
      unitRef="USD">2077000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_InternationalMember"
      decimals="0"
      id="fid_73"
      unitRef="USD">1351000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2022-01-01to2022-12-31_tomz_InternationalMember"
      decimals="0"
      id="fid_1115"
      unitRef="USD">726000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2022-01-01to2022-12-31_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_71"
      unitRef="USD">8338000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_72"
      unitRef="USD">7754000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2022-01-01to2022-12-31_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_1116"
      unitRef="USD">584000</tomz:ChangesInRevenue>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="From2022-01-01to2022-12-31" id="fid_999">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We account for equity compensation expense in accordance with FASB ASC 718, &#x201c;Compensation&#x2014;Stock Compensation.&#x201d; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#x2019;s fair value.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#x2013;free interest rates are calculated based on continuously compounded risk&#x2013;free rates for the appropriate term.&#160;The expected term of the Company's warrants has been determined utilizing the "simplified" method for awards that qualify as "plain-vanilla" warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its Common Stock and does not intend to pay dividends on its Common Stock in the foreseeable future. The expected forfeiture rate is estimated based on management&#x2019;s best assessment.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;On July 7, 2017, our shareholders approved the 2016 Equity Incentive Plan, or the 2016 Plan. The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of common stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of common stock for numerous reasons, including, but not limited to, shares of common stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. For the year ended December 31, 2022 and 2021, we issued 51,750 and 50,000 shares of common stock, respectively, out of the 2016 Plan.&lt;/p&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember"
      decimals="0"
      id="fid_116"
      unitRef="Shares">2000000</us-gaap:CommonStockSharesAuthorized>
    <tomz:CommonStockSharesIssuedVested
      contextRef="From2022-01-01to2022-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember"
      decimals="0"
      id="fid_117"
      unitRef="Shares">51750</tomz:CommonStockSharesIssuedVested>
    <tomz:CommonStockSharesIssuedVested
      contextRef="From2021-01-01to2021-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember"
      decimals="0"
      id="fid_123"
      unitRef="Shares">50000</tomz:CommonStockSharesIssuedVested>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="From2022-01-01to2022-12-31" id="fid_1000">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.&lt;/p&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:FederalDepositInsuranceCorporationPremiumExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_93"
      unitRef="USD">250000</us-gaap:FederalDepositInsuranceCorporationPremiumExpense>
    <tomz:LonglivedAssetsIncludingAcquiredIntangibleAssets contextRef="From2022-01-01to2022-12-31" id="fid_1001">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the years ended December 31, 2022 and 2021.&lt;/p&gt;</tomz:LonglivedAssetsIncludingAcquiredIntangibleAssets>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1002">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;We expense advertising costs in the period in which they are incurred. Advertising and promotional expenses included in selling expenses for the years ended December 31, 2022 and 2021 were approximately $653,000 and $701,000, respectively.&lt;/p&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_85"
      unitRef="USD">653000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_87"
      unitRef="USD">701000</us-gaap:AdvertisingExpense>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="From2022-01-01to2022-12-31" id="fid_1003">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2022 and 2021, research and development expenses were approximately $352,000 and $573,000, respectively.&lt;/p&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <tomz:ResearchAndDevelopmentsExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_89"
      unitRef="USD">352000</tomz:ResearchAndDevelopmentsExpense>
    <tomz:ResearchAndDevelopmentsExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_91"
      unitRef="USD">573000</tomz:ResearchAndDevelopmentsExpense>
    <us-gaap:BusinessCombinationsPolicy contextRef="From2022-01-01to2022-12-31" id="fid_1004">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product. A breakdown of revenue is presented in &#x201c;Revenue Recognition&#x201d; in Note 2 above.&lt;/p&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1005">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;&lt;em&gt;Recently issued accounting pronouncements not yet adopted&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;In March 2022, the FASB issued ASU 2022-02, Troubled Debt Restructurings and Vintage Disclosures. This ASU eliminates the accounting guidance for troubled debt restructurings by creditors that have adopted ASU 2016-13, Measurement of Credit Losses on Financial Instruments, which we adopted on January 1, 2020. This ASU also enhances the disclosure requirements for certain loan refinancing and restructurings by creditors when a borrower is experiencing financial difficulty. In addition, the ASU amends the guidance on vintage disclosures to require entities to disclose current period gross write-offs by year of origination for financing receivables and net investments in leases within the scope of ASC 326-20. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU would be applied prospectively. Early adoption is also permitted, including adoption in an interim period. This ASU is currently not expected to have a material impact on our consolidated financial statements.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;In October 2021, the FASB issued ASU No. 2021-08, Accounting for Contract Assets and Contract Liabilities from Contracts with Customers (Topic 805). This ASU requires an acquirer in a business combination to recognize and measure contract assets and contract liabilities (deferred revenue) from acquired contracts using the revenue recognition guidance in Topic 606. At the acquisition date, the acquirer applies the revenue model as if it had originated the acquired contracts. The ASU is effective for annual periods beginning after December 15, 2022, including interim periods within those fiscal years. Adoption of the ASU should be applied prospectively. Early adoption is also permitted, including adoption in an interim period. If early adopted, the amendments are applied retrospectively to all business combinations for which the acquisition date occurred during the fiscal year of adoption. This ASU is currently not expected to have a material impact on our consolidated financial statements.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;&lt;em&gt;Recently adopted accounting pronouncements&lt;/em&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:27.75pt"&gt;In November 2021, the FASB issued ASU No. 2021-10, Government Assistance (Topic 832). This ASU requires business entities to disclose information about government assistance they receive if the transactions were accounted for by analogy to either a grant or a contribution accounting model. The disclosure requirements include the nature of the transaction and the related accounting policy used, the line items on the balance sheets and statements of operations that are affected and the amounts applicable to each financial statement line item and the significant terms and conditions of the transactions. The ASU is effective for annual periods beginning after December 15, 2021. We adopted ASU 2021-10 starting in 2022, which did not have a material impact on our consolidated financial statements.&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:InventoryDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_967">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 3. INVENTORIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/strong&gt;Inventories consist of the following at:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Finished goods&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,929,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,293,080&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Raw Materials&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;691,999&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;377,490&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Inventory Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(95,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,495,999&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,743,280&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1008">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Finished goods&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,929,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,293,080&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Raw Materials&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;691,999&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;377,490&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Inventory Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(95,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,495,999&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,743,280&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_124"
      unitRef="USD">3929000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_125"
      unitRef="USD">4293080</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryRawMaterials
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_126"
      unitRef="USD">691999</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_127"
      unitRef="USD">377490</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_130"
      unitRef="USD">95000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_131"
      unitRef="USD">0</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_128"
      unitRef="USD">4495999</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_129"
      unitRef="USD">4743280</us-gaap:InventoryNet>
    <tomz:VendorDepositsTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_968">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 4. VENDOR DEPOSITS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;On December 31, 2022 and December 31, 2021, we maintained vendor deposits of $447,052 and $288,586, respectively, for open purchase orders for inventory.&lt;/p&gt;</tomz:VendorDepositsTextBlock>
    <us-gaap:Deposits
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_132"
      unitRef="USD">447052</us-gaap:Deposits>
    <us-gaap:Deposits
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_133"
      unitRef="USD">288586</us-gaap:Deposits>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_969">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 5. PROPERTY AND EQUIPMENT&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Property and equipment consist of the following at:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;364,819&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;357,236&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,236,510&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,688,236&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Vehicles&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;60,703&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;60,703&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Computer and software&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;246,638&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;232,017&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;393,381&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;386,120&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Tenant Improvement Allowance&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized Costs in Progress &#x2013; Tooling and Molds&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;376,864&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,707,051&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,506,176&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,371,720&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,017,857&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Property and Equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,335,331&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,488,319&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;For the years ended December 31, 2022 and 2021, depreciation was $314,669 and $299,665, respectively. For the years ended December 31, 2022 and 2021, amortization of tenant improvement allowance was $39,194 and was recorded as lease expense and included within general and administrative expense on the consolidated statement of operations.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1009">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;364,819&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;357,236&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,236,510&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,688,236&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Vehicles&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;60,703&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;60,703&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Computer and software&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;246,638&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;232,017&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;393,381&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;386,120&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Tenant Improvement Allowance&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized Costs in Progress &#x2013; Tooling and Molds&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;376,864&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,707,051&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,506,176&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,371,720&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,017,857&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Property and Equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,335,331&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,488,319&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:FurnitureAndFixturesGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_134"
      unitRef="USD">364819</us-gaap:FurnitureAndFixturesGross>
    <us-gaap:FurnitureAndFixturesGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_135"
      unitRef="USD">357236</us-gaap:FurnitureAndFixturesGross>
    <tomz:Equipments
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_136"
      unitRef="USD">2236510</tomz:Equipments>
    <tomz:Equipments
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_137"
      unitRef="USD">1688236</tomz:Equipments>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_138"
      unitRef="USD">60703</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_139"
      unitRef="USD">60703</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <tomz:ComputerSoftware
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_140"
      unitRef="USD">246638</tomz:ComputerSoftware>
    <tomz:ComputerSoftware
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_141"
      unitRef="USD">232017</tomz:ComputerSoftware>
    <us-gaap:LeaseholdImprovementsGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_142"
      unitRef="USD">393381</us-gaap:LeaseholdImprovementsGross>
    <us-gaap:LeaseholdImprovementsGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_143"
      unitRef="USD">386120</us-gaap:LeaseholdImprovementsGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_144"
      unitRef="USD">405000</us-gaap:ConstructionInProgressGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_145"
      unitRef="USD">405000</us-gaap:ConstructionInProgressGross>
    <us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_146"
      unitRef="USD">0</us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross>
    <us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_147"
      unitRef="USD">376864</us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_148"
      unitRef="USD">3707051</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_149"
      unitRef="USD">3506176</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_150"
      unitRef="USD">2371720</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_151"
      unitRef="USD">2017857</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_152"
      unitRef="USD">1335331</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_153"
      unitRef="USD">1488319</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Depreciation
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_155"
      unitRef="USD">314669</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_157"
      unitRef="USD">299665</us-gaap:Depreciation>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_159"
      unitRef="USD">39194</tomz:AmortizationOfTenantImprovementAllowance>
    <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_970">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 6. INTANGIBLE ASSETS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Intangible assets consist of patents and trademarks related to our Binary Ionization Technology. We amortize the patents over the estimated remaining lives of the related patents. The trademarks have an indefinite life. Amortization expense was $14,495 and $11,406 for the years ended December 31, 2022 and 2021, respectively. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Definite life intangible assets consist of the following: &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Intellectual Property and Patents &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,108,063&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,065,584&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Less: Accumulated Amortization &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,882,892&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,868,397&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Patents, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;225,171&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;197,187&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Indefinite life intangible assets consist of the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Trademarks&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;800,565&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;759,097&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Total Intangible Assets, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,025,736&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;956,284&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Approximate future amortization is as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Approximate future amortization is as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160; &lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended&lt;/strong&gt;&lt;strong&gt;:&#160;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;strong&gt;&#160;&#160;&#160;&#160;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;152,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;197,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_180"
      unitRef="USD">14495</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_182"
      unitRef="USD">11406</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1010">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Intellectual Property and Patents &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,108,063&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,065,584&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Less: Accumulated Amortization &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,882,892&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,868,397&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Patents, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;225,171&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;197,187&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_161"
      unitRef="USD">3108063</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_162"
      unitRef="USD">3065584</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_163"
      unitRef="USD">2882892</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_164"
      unitRef="USD">2868397</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <tomz:IntangibleAssetsNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_165"
      unitRef="USD">225171</tomz:IntangibleAssetsNet>
    <tomz:IntangibleAssetsNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_166"
      unitRef="USD">197187</tomz:IntangibleAssetsNet>
    <us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1011">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Trademarks&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;800,565&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;759,097&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Total Intangible Assets, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,025,736&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;956,284&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock>
    <us-gaap:IndefiniteLivedTrademarks
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_167"
      unitRef="USD">800565</us-gaap:IndefiniteLivedTrademarks>
    <us-gaap:IndefiniteLivedTrademarks
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_168"
      unitRef="USD">759097</us-gaap:IndefiniteLivedTrademarks>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_169"
      unitRef="USD">1025736</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_170"
      unitRef="USD">956284</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1012">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended&lt;/strong&gt;&lt;strong&gt;:&#160;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;strong&gt;&#160;&#160;&#160;&#160;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;152,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;197,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_172"
      unitRef="USD">14500</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_173"
      unitRef="USD">14500</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_174"
      unitRef="USD">14500</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_175"
      unitRef="USD">14500</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_176"
      unitRef="USD">152500</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_177"
      unitRef="USD">14500</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_178"
      unitRef="USD">197000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:LeasesOfLesseeDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_971">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 7. LEASES&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In April 2018, we entered into a 10-year lease agreement for a new 9,000-square-foot facility that contains office, warehouse, lab and research and development space in Frederick, Maryland. The lease agreement commenced in December 2018 when the property was ready for occupancy. The agreement provided for annual rent of $143,460, an escalation clause that increases the rent 3% year over year, a landlord tenant improvement allowance of $405,000 and additional landlord work as discussed in the lease agreement. We took occupancy of the property on December 17, 2018 and the lease was amended in March 2019 to provide for a 4-month rent holiday and a commencement date of April 1, 2019.&#160; A 7% discount rate was determined using used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&#160; Lease expense for operating lease payments is recognized on a straight-line basis over the lease term. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The balances for our operating lease where we are the lessee are presented as follows within our consolidated balance sheet:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Operating leases:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Assets:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="MARGIN: 0px 0px 0px 15px;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;528,996&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;583,271&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Liabilities:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Current Portion of Long-Term Operating Lease&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;100,282&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;91,775&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Long-Term Operating Lease, Net of Current Portion&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;761,132&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;861,415&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;861,414&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;953,190&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The components of lease expense are as follows within our consolidated statement of operations:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating lease expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;157,315&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;157,315&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Other information related to leases where we are the lessee is as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="9"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted-average remaining lease term:&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;&#160;6.00 years&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;&#160;7.00 years&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Discount rate:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Supplemental cash flow information related to leases where we are the lessee is as follows:&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;155,621&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;151,088&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;As of December 31, 2022, the maturities of our operating lease liability are as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Operating&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Lease&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;160,290&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;165,098&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;170,051&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;175,153&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;180,407&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Thereafter &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;219,571&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total minimum lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,070,571&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less:&#160; Interest &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;209,156&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Present value of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;861,415&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;100,282&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Long-term portion of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;761,132&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LeasesOfLesseeDisclosureTextBlock>
    <tomz:TermLease contextRef="From2022-01-01to2022-12-31" id="fid_219">P10Y</tomz:TermLease>
    <us-gaap:AreaOfLand
      contextRef="AsOf2018-04-30"
      decimals="INF"
      id="fid_220"
      unitRef="sqft">9000</us-gaap:AreaOfLand>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="From2018-04-01to2018-04-30"
      decimals="0"
      id="fid_221"
      unitRef="USD">143460</us-gaap:OperatingLeasesRentExpenseNet>
    <tomz:MaximumIncreasesRentPercentage
      contextRef="From2018-04-01to2018-04-30"
      decimals="INF"
      id="fid_222"
      unitRef="Pure">0.03</tomz:MaximumIncreasesRentPercentage>
    <us-gaap:PaymentsForProceedsFromTenantAllowance
      contextRef="From2018-04-01to2018-04-30"
      decimals="0"
      id="fid_224"
      unitRef="USD">405000</us-gaap:PaymentsForProceedsFromTenantAllowance>
    <us-gaap:WorkersCompensationDiscountPercent
      contextRef="From2018-04-01to2018-04-30"
      decimals="INF"
      id="fid_223"
      unitRef="Pure">0.07</us-gaap:WorkersCompensationDiscountPercent>
    <us-gaap:LeaseCostTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1013">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Operating leases:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Assets:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="MARGIN: 0px 0px 0px 15px;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;528,996&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;583,271&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Liabilities:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Current Portion of Long-Term Operating Lease&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;100,282&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;91,775&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Long-Term Operating Lease, Net of Current Portion&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;761,132&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;861,415&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;861,414&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;953,190&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_184"
      unitRef="USD">528996</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_185"
      unitRef="USD">583271</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_187"
      unitRef="USD">100282</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_188"
      unitRef="USD">91775</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_189"
      unitRef="USD">761132</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_190"
      unitRef="USD">861415</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_191"
      unitRef="USD">861414</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_192"
      unitRef="USD">953190</us-gaap:OperatingLeaseLiability>
    <tomz:OperatingLeaseLiabilityTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1014">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating lease expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;157,315&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;157,315&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:OperatingLeaseLiabilityTableTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_195"
      unitRef="USD">157315</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_196"
      unitRef="USD">157315</us-gaap:OperatingLeaseExpense>
    <tomz:LeaseOtherInformationTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1015">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="9"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted-average remaining lease term:&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;&#160;6.00 years&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;&#160;7.00 years&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Discount rate:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:LeaseOtherInformationTableTextBlock>
    <tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm contextRef="From2022-01-01to2022-12-31" id="fid_197">6.00</tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm>
    <tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm contextRef="From2021-01-01to2021-12-31" id="fid_198">7.00</tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseDiscountRate
      contextRef="AsOf2022-09-30"
      decimals="INF"
      id="fid_199"
      unitRef="Pure">0.0700</us-gaap:LesseeOperatingLeaseDiscountRate>
    <us-gaap:LesseeOperatingLeaseDiscountRate
      contextRef="AsOf2021-12-31"
      decimals="INF"
      id="fid_200"
      unitRef="Pure">0.0700</us-gaap:LesseeOperatingLeaseDiscountRate>
    <tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1016">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;155,621&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;151,088&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_203"
      unitRef="USD">155621</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_204"
      unitRef="USD">151088</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1017">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Operating&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Lease&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;160,290&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;165,098&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;170,051&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;175,153&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;180,407&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Thereafter &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;219,571&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total minimum lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,070,571&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less:&#160; Interest &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;209,156&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Present value of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;861,415&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;100,282&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Long-term portion of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;761,132&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_205"
      unitRef="USD">160290</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_206"
      unitRef="USD">165098</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_207"
      unitRef="USD">170051</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_208"
      unitRef="USD">175153</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_209"
      unitRef="USD">180407</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_210"
      unitRef="USD">219571</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_211"
      unitRef="USD">1070571</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_212"
      unitRef="USD">209156</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:CapitalLeaseObligationsCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_213"
      unitRef="USD">861415</us-gaap:CapitalLeaseObligationsCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_215"
      unitRef="USD">100282</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_217"
      unitRef="USD">761132</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_972">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 8. CAPITALIZED SOFTWARE DEVELOPMENT COSTS&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In accordance with ASC 985-20 we capitalized certain software development costs associated with updating our continuing line of product offerings. Capitalized software development costs consist of the following at:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&#160;&#160;&#160; December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized Software Development Costs &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;125,704&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;125,704&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less:&#160; Accumulated Amortization &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(125,704&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(115,229&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized Software Development Costs - net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;10,475&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Amortization expense for the years ended December 31, 2022 and 2021 was $10,475 and $41,900, respectively.&lt;/p&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock>
    <tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1018">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&#160;&#160;&#160; December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized Software Development Costs &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;125,704&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;125,704&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less:&#160; Accumulated Amortization &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(125,704&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(115,229&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized Software Development Costs - net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;10,475&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_333"
      unitRef="USD">125704</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_332"
      unitRef="USD">125704</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_335"
      unitRef="USD">125704</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_334"
      unitRef="USD">115229</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_337"
      unitRef="USD">0</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_336"
      unitRef="USD">10475</us-gaap:CapitalizedComputerSoftwareNet>
    <tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_339"
      unitRef="USD">10475</tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts>
    <tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_338"
      unitRef="USD">41900</tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts>
    <tomz:CloudComputingServiceContractDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_973">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 9. &lt;/strong&gt;&lt;strong&gt;CLOUD COMPUTING SERVICE CONTRACT&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;In May 2020 we entered into a cloud computing service contract with a vendor. The contract provides for annual payments in the amount of $30,409 and has a term of 5 years. The annual contract payments are capitalized as a prepaid expense and amortized over a twelve-month period.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;We have incurred implementation costs of $66,857 in connection with the cloud computing service contract which have been capitalized in prepaid expenses and other assets as of December 31, 2022. In accordance with ASU No. 2018-15, such implementation costs are being amortized over the remaining contract terms beginning January 1, 2021, which was when the cloud-based service contract was placed in service. Amortization expense for the years ended December 31, 2022 and 2021 were $14,495 and $14,432, respectively.&lt;/p&gt;</tomz:CloudComputingServiceContractDisclosureTextBlock>
    <tomz:ProceedsFromServiceContractOfReceivables
      contextRef="From2021-05-01to2021-05-31"
      decimals="0"
      id="fid_340"
      unitRef="USD">30409</tomz:ProceedsFromServiceContractOfReceivables>
    <tomz:AnnualPaymentsOnContractTerm contextRef="From2022-01-01to2022-12-31" id="fid_341">P5Y</tomz:AnnualPaymentsOnContractTerm>
    <us-gaap:PrepaidExpenseAndOtherAssets
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_344"
      unitRef="USD">66857</us-gaap:PrepaidExpenseAndOtherAssets>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_342"
      unitRef="USD">14495</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_343"
      unitRef="USD">14432</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_974">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 10. SHAREHOLDERS&#x2019; EQUITY&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our Board of Directors (the &#x201c;Board&#x201d;) may, without further action by our shareholders, from time to time, direct the issuance of any authorized but unissued or unreserved shares of preferred stock in series and at the time of issuance, determine the rights, preferences and limitations of each series. The holders of such preferred stock may be entitled to receive a preference payment in the event of any liquidation, dissolution or winding-up by us before any payment is made to the holders of our common stock. Furthermore, the Board could issue preferred stock with voting and other rights that could adversely affect the voting power of the holders of our common stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Convertible Series A Preferred Stock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our authorized Convertible Series A Preferred Stock, $0.01 par value, consists of 1,000,000 shares. At December 31, 2022 and 2021, there were 63,750 shares issued and outstanding. The Convertible Series A Preferred Stock is convertible at the rate of one share of common stock for one share of Convertible Series A Preferred Stock.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Convertible Series B Preferred Stock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of 4,000 shares. At December 31, 2022 and 2021, there were no shares issued and outstanding, respectively. Each share of Convertible Series B Preferred Stock may be converted (at the holder&#x2019;s election) into two hundred shares of our common stock.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Common Stock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;"&gt;In January 2021, we issued 50,000 shares of common stock valued at approximately $228,000 to members of our Board (see Note 12).&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt"&gt;In September 2021, we sold 2,869,442 shares of common stock through a registered direct offering and issued 1,434,721 warrants to purchase common stock in a concurrent private placement. We received net proceeds from the transaction of $4,581,651, after deducting the placement agent&#x2019;s fees and other estimated offering expenses. The Warrants have an exercise price of $1.68 per share, are exercisable immediately upon issuance and have a term of five years from the date of issuance. In addition, we issued 172,167 warrants to the placement agent which have a term of five years and an exercise price of $2.18 per share. &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;"&gt;In January 2022, we issued 51,750 shares of common stock valued at approximately $54,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Stock Options&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;&#160; In January 2022 we issued an option to purchase 172,500 shares of common stock to our Chief Executive Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $178,281 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In January 2022 we issued an option to purchase 57,500 shares of common stock to our Chief Operating Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $59,427 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In January 2022 we issued an option to purchase 40,000 shares of common stock to our Chief Financial Officer at an exercise price of $1.12 per share pursuant to an employment agreement. The option was valued at $41,340 and has a contractual term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.65%; and an expected life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.03.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0.5in; text-align:justify;"&gt;The following table summarizes stock options outstanding as of December 31, 2022 and 2021:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;143,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.66&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;132,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.72&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.93&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;413,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1.65&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;143,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.66&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;"&gt;Options outstanding and exercisable by price range as of December 31, 2022 were as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining &lt;/strong&gt;&lt;strong&gt;Contractual &lt;/strong&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted &lt;/strong&gt;&lt;strong&gt;Average &lt;/strong&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td style="width:17%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;27,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;2.20&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;27,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.88&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.01&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.88&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.96&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;25,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.02&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;25,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.96&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.12&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;9.06&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.93&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.06&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.93&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;2.16&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;5,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.00&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;5,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.16&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.40&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3.05&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.40&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;7.06&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.06&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;413,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;6.63&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;413,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;1.65&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Stock Warrants&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;On February 11, 2021, we agreed to amend (the &#x201c;Warrant Amendment&#x201d;) the warrant to purchase 125,000 shares of TOMI common stock, par value $0.01 (the &#x201c;Common Stock&#x201d;), issued by TOMI to Dr. Halden S. Shane, TOMI&#x2019;s Chief Executive Officer and a director on TOMI&#x2019;s board of directors, on February 11, 2014 (the &#x201c;Warrant&#x201d;), to provide TOMI an option to repurchase the Warrant from Dr. Shane at a negotiated price. In connection with the Warrant Amendment, TOMI repurchased the warrant from Dr. Shane (the &#x201c;Repurchase&#x201d;) for an aggregate cash consideration of $314,500, representing a 15% discount of the net exercise cash value of the Warrant, which was calculated using the closing price of the Common Stock on the Nasdaq on February 11, 2021 of $5.36, less the exercise price of the warrants in the amount of $2.40. On the same date, the Warrant Amendment and the Repurchase was considered, approved and adopted by a disinterested majority of TOMI&#x2019;s board of directors.&#160; The $314,500 charge in connection with the warrant amendment has been included in General and Administrative expenses for the year ended December 31, 2021.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt"&gt;In September 2021, we issued 1,434,721 warrants in a private placement in connection with the sale common stock through a registered direct offering.&#160; The Warrants are exercisable at an exercise price of $1.68 per share, are exercisable immediately upon issuance and have a term of exercise equal to five years from the date of issuance. In addition, we issued 172,167 warrants to the placement agent which have a term of five years and an exercise price of $2.18. &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:33.75pt"&gt;In November 2022, we modified the terms of Dr. Halden S. Shane's, TOMI's Chief Executive Officer and a director on TOMI's board of directors, outstanding warrants to purchase 593,750 shares of common stock.&#160; The terms of the warrants were increased by 10 years.&#160; Pursuant to ASC 718, the modified terms of the warrants resulted in approximately $356,000 in incremental equity compensation expense for the year ended December 31, 2022.&#160; We utilized the Black-Scholes method to fair value the warrants under the original and modified terms with the following range of assumptions: volatility, 83%-163%; expected dividend yield, 0%; risk free interest rate, 4.31%; and a life of 0.12 - 11.23 years, respectively. The grant date fair value range of each share of common stock underlying the warrant was $0.17 through $0.65.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The following table summarizes the outstanding common stock warrants as of December 31, 2022 and 2021:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,381,021&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.22&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,049,133&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.55&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,606,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.73&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(31,250&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(0.21&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(557,436&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(2.23&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(262,500&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(2.65&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,792,335&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;3,381,021&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.22&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Warrants outstanding and exercisable by price range as of December 31, 2022 were as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;strong&gt;Average Weighted&lt;/strong&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining Contractual&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td style="width:17%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.64&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;10.89&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;"&gt;0.64&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;11.08&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.96&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;442,708&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;9.98&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;442,708&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.96&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.12&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.30&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.20&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;175,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.88&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;175,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.20&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.68&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.68&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;2.18&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.18&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.00&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.32&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.00&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;6.95&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6.95&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;8.40&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;1,489&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;0.63&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;1,489&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;8.40&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,792,335&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;5.58&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,792,335&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;There were no unvested warrants outstanding as of December 31, 2022.&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      id="fid_1044"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1127"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2022-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1046"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2022-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_1048"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:CommonStockValue
      contextRef="AsOf2022-12-31_tomz_JanuaryTwentyTwentyTwoMember"
      decimals="0"
      id="fid_1051"
      unitRef="USD">228000</us-gaap:CommonStockValue>
    <tomz:CommonStockShareSold
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1030"
      unitRef="Shares">2869442</tomz:CommonStockShareSold>
    <tomz:IssuedWarrantsInConcurrentPrivatePlacement
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1031"
      unitRef="Shares">1434721</tomz:IssuedWarrantsInConcurrentPrivatePlacement>
    <us-gaap:ProceedsFromIssuanceOfWarrants
      contextRef="From2021-09-01to2021-09-30"
      decimals="0"
      id="fid_1049"
      unitRef="USD">4581651</us-gaap:ProceedsFromIssuanceOfWarrants>
    <tomz:ExercisePriceOfWarrant
      contextRef="AsOf2021-09-30"
      decimals="INF"
      id="fid_1035"
      unitRef="USDPShares">1.68</tomz:ExercisePriceOfWarrant>
    <tomz:IssuedWarrantsInConcurrentPlacementAgent
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1032"
      unitRef="Shares">172167</tomz:IssuedWarrantsInConcurrentPlacementAgent>
    <tomz:TermsOfOutstandingWarrantsToPurchase
      contextRef="From2021-09-01to2021-09-30"
      decimals="INF"
      id="fid_1033"
      unitRef="USDPShares">2.18</tomz:TermsOfOutstandingWarrantsToPurchase>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2022-01-01to2022-12-31_tomz_JanuaryTwentyTwentyTwoMember"
      decimals="0"
      id="fid_1050"
      unitRef="Shares">51750</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1053"
      unitRef="Shares">172500</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1061"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockOption
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1055"
      unitRef="USD">178281</tomz:FairValueOfStockOption>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      id="fid_1060">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1057"
      unitRef="Pure">1.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1058"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1059"
      unitRef="Pure">0.0165</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      id="fid_1056">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1054"
      unitRef="USDPShares">1.03</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1062"
      unitRef="Shares">40000</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1063"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockOption
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1064"
      unitRef="USD">41340</tomz:FairValueOfStockOption>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      id="fid_1065">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1066"
      unitRef="Pure">1.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1067"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1068"
      unitRef="Pure">0.0165</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      id="fid_1069">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2022-01-01to2022-01-31_tomz_ChiefOperatingOfficersMember_tomz_JanuaryTwentyTwoMember_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1070"
      unitRef="USDPShares">1.03</tomz:GrantFairValueOfPerShare>
    <us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1019">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;143,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.66&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;132,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.72&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.93&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;413,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1.65&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;143,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.66&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock>
    <tomz:OutstandingBeginningOfPeriod
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_367"
      unitRef="Shares">143000</tomz:OutstandingBeginningOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingBeginningBalance
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_378"
      unitRef="USDPShares">2.66</tomz:WeightedAverageExercisePriceOutstandingBeginningBalance>
    <tomz:OutstandingBeginningOfPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_366"
      unitRef="Shares">132500</tomz:OutstandingBeginningOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingBeginningBalance
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_377"
      unitRef="USDPShares">2.72</tomz:WeightedAverageExercisePriceOutstandingBeginningBalance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_369"
      unitRef="Shares">270000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tomz:WeightedAverageExercisePriceGranted
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_380"
      unitRef="USDPShares">1.12</tomz:WeightedAverageExercisePriceGranted>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_368"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tomz:WeightedAverageExercisePriceGranted
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_379"
      unitRef="USDPShares">1.93</tomz:WeightedAverageExercisePriceGranted>
    <tomz:OutstandingEndOfPeriod
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_375"
      unitRef="Shares">413000</tomz:OutstandingEndOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingEndingBalance
      contextRef="From2022-01-01to2022-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_386"
      unitRef="USDPShares">1.65</tomz:WeightedAverageExercisePriceOutstandingEndingBalance>
    <tomz:OutstandingEndOfPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_374"
      unitRef="Shares">143000</tomz:OutstandingEndOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingEndingBalance
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_385"
      unitRef="USDPShares">2.66</tomz:WeightedAverageExercisePriceOutstandingEndingBalance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1020">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining &lt;/strong&gt;&lt;strong&gt;Contractual &lt;/strong&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted &lt;/strong&gt;&lt;strong&gt;Average &lt;/strong&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td style="width:17%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;27,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;2.20&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;27,500&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.88&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.01&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.88&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.96&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;25,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.02&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;25,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.96&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.12&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;9.06&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.93&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.06&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.93&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;2.16&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;5,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.00&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;5,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.16&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.40&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3.05&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.40&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;7.06&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.06&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;413,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;6.63&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;413,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;1.65&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeOneMember"
      decimals="0"
      id="fid_387"
      unitRef="Shares">27500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeOneMember"
      id="fid_394">P2Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeOneMember"
      decimals="0"
      id="fid_401"
      unitRef="Shares">27500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeOneMember"
      decimals="INF"
      id="fid_408"
      unitRef="USDPShares">0.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeEightMember"
      decimals="0"
      id="fid_388"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeTwoMember"
      id="fid_395">P1Y3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeEightMember"
      decimals="0"
      id="fid_402"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeTwoMember"
      decimals="INF"
      id="fid_409"
      unitRef="USDPShares">0.88</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeThreeMember"
      decimals="0"
      id="fid_389"
      unitRef="Shares">25000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeThreeMember"
      id="fid_396">P1Y7D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeThreeMember"
      decimals="0"
      id="fid_403"
      unitRef="Shares">25000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeThreeMember"
      decimals="INF"
      id="fid_410"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeNineMember"
      decimals="0"
      id="fid_1121"
      unitRef="Shares">270000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeNineMember"
      id="fid_1120">P9Y21D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeNineMember"
      decimals="0"
      id="fid_1119"
      unitRef="Shares">270000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeNineMember"
      decimals="INF"
      id="fid_1118"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeFourMember"
      decimals="0"
      id="fid_390"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeFourMember"
      id="fid_397">P4Y21D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeFourMember"
      decimals="0"
      id="fid_404"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeFourMember"
      decimals="INF"
      id="fid_411"
      unitRef="USDPShares">1.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeFiveMember"
      decimals="0"
      id="fid_391"
      unitRef="Shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeFiveMember"
      id="fid_398">P2Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeFiveMember"
      decimals="0"
      id="fid_405"
      unitRef="Shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeFiveMember"
      decimals="INF"
      id="fid_412"
      unitRef="USDPShares">2.16</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeSevenMember"
      decimals="0"
      id="fid_392"
      unitRef="Shares">12500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeSevenMember"
      id="fid_399">P3Y18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeSevenMember"
      decimals="0"
      id="fid_406"
      unitRef="Shares">12500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeSevenMember"
      decimals="INF"
      id="fid_413"
      unitRef="USDPShares">4.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_RangeTwoMember"
      decimals="0"
      id="fid_393"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_RangeEightMember"
      id="fid_400">P2Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_RangeTwoMember"
      decimals="0"
      id="fid_407"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_RangeEightMember"
      decimals="INF"
      id="fid_414"
      unitRef="USDPShares">7.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_1130"
      unitRef="Shares">413000</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers>
    <tomz:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2 contextRef="From2022-01-01to2022-12-31" id="fid_1129">P6Y7M17D</tomz:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_1128"
      unitRef="Shares">413000</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices
      contextRef="AsOf2022-12-31"
      decimals="INF"
      id="fid_418"
      unitRef="USDPShares">1.65</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-02-01to2021-02-11"
      decimals="0"
      id="fid_1040"
      unitRef="Shares">125000</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <tomz:WarrantAmendmentDescription contextRef="From2021-02-01to2021-02-11" id="fid_1038">In connection with the Warrant Amendment, TOMI repurchased the warrant from Dr. Shane (the &#x201c;Repurchase&#x201d;) for an aggregate cash consideration of $314,500, representing a 15% discount of the net exercise cash value of the Warrant, which was calculated using the closing price of the Common Stock on the Nasdaq on February 11, 2021 of $5.36, less the exercise price of the warrants in the amount of $2.40. On the same date, the Warrant Amendment and the Repurchase was considered, approved and adopted by a disinterested majority of TOMI&#x2019;s board of directors.</tomz:WarrantAmendmentDescription>
    <tomz:AggregateCashConsideration
      contextRef="AsOf2021-02-11"
      decimals="0"
      id="fid_1039"
      unitRef="USD">314500</tomz:AggregateCashConsideration>
    <us-gaap:WarrantsAndRightsOutstanding
      contextRef="AsOf2021-09-30_tomz_PlacementAgentMember"
      decimals="0"
      id="fid_1045"
      unitRef="USD">172167</us-gaap:WarrantsAndRightsOutstanding>
    <tomz:ExercisePriceOfWarrant
      contextRef="AsOf2021-09-30_tomz_PlacementAgentMember"
      decimals="INF"
      id="fid_1037"
      unitRef="USDPShares">2.18</tomz:ExercisePriceOfWarrant>
    <tomz:TermsOfOutstandingWarrantsToPurchase
      contextRef="From2022-11-01to2022-11-30"
      decimals="INF"
      id="fid_1071"
      unitRef="USDPShares">593750</tomz:TermsOfOutstandingWarrantsToPurchase>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1 contextRef="From2022-11-01to2022-11-30" id="fid_1072">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <us-gaap:ShareBasedCompensation
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_1073"
      unitRef="USD">356000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2022-11-01to2022-11-30_srt_MinimumMember"
      decimals="INF"
      id="fid_1074"
      unitRef="Pure">0.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2022-11-01to2022-11-30_srt_MaximumMember"
      decimals="INF"
      id="fid_1075"
      unitRef="Pure">1.63</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2022-11-01to2022-11-30"
      decimals="INF"
      id="fid_1076"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2022-11-01to2022-11-30"
      decimals="INF"
      id="fid_1077"
      unitRef="Pure">0.0431</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2022-11-01to2022-11-30_srt_MinimumMember"
      id="fid_1079">P0Y1M13D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2022-11-01to2022-11-30_srt_MaximumMember"
      id="fid_1078">P11Y2M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2022-11-01to2022-11-30_srt_MinimumMember"
      decimals="INF"
      id="fid_1080"
      unitRef="USDPShares">0.17</tomz:GrantFairValueOfPerShare>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2022-11-01to2022-11-30_srt_MaximumMember"
      decimals="INF"
      id="fid_1081"
      unitRef="USDPShares">0.65</tomz:GrantFairValueOfPerShare>
    <us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1021">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,381,021&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.22&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,049,133&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.55&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,606,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.73&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(31,250&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(0.21&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(557,436&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(2.23&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(262,500&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(2.65&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,792,335&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;3,381,021&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.22&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_423"
      unitRef="Shares">3381021</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_436"
      unitRef="USDPShares">2.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_422"
      unitRef="Shares">2049133</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2020-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_435"
      unitRef="USDPShares">2.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_425"
      unitRef="Shares">1606888</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_438"
      unitRef="USDPShares">1.73</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_444"
      unitRef="Shares">-31250</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_439"
      unitRef="USDPShares">0.21</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_427"
      unitRef="Shares">557436</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_441"
      unitRef="USDPShares">2.23</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_428"
      unitRef="Shares">262500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_442"
      unitRef="USDPShares">2.65</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_445"
      unitRef="Shares">2792335</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_446"
      unitRef="USDPShares">2.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_430"
      unitRef="Shares">3381021</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_443"
      unitRef="USDPShares">2.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <tomz:WarrantsOutstandingAndExercisableByPriceRange contextRef="From2022-01-01to2022-12-31" id="fid_1022">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;strong&gt;Average Weighted&lt;/strong&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining Contractual&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td style="width:17%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.64&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;10.89&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:18%;vertical-align:bottom;text-align:right;"&gt;0.64&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;11.08&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.96&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;442,708&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;9.98&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;442,708&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.96&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.12&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.30&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6,250&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.20&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;175,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.88&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;175,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.20&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.68&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.68&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;2.18&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.18&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.00&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.32&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.00&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;6.95&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6.95&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;8.40&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;1,489&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;0.63&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;1,489&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;8.40&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,792,335&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;5.58&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,792,335&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2.25&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:WarrantsOutstandingAndExercisableByPriceRange>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsOneMember"
      decimals="0"
      id="fid_447"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsOneMember"
      id="fid_503">P10Y10M20D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsOneMember"
      decimals="0"
      id="fid_475"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsOneMember"
      decimals="INF"
      id="fid_489"
      unitRef="USDPShares">0.64</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsTwoMember"
      decimals="0"
      id="fid_448"
      unitRef="Shares">125000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsTwoMember"
      id="fid_504">P11Y29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsTwoMember"
      decimals="0"
      id="fid_476"
      unitRef="Shares">125000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsTwoMember"
      decimals="INF"
      id="fid_490"
      unitRef="USDPShares">0.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsThreeMember"
      decimals="0"
      id="fid_449"
      unitRef="Shares">442708</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsThreeMember"
      id="fid_505">P9Y11M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsThreeMember"
      decimals="0"
      id="fid_477"
      unitRef="Shares">442708</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsThreeMember"
      decimals="INF"
      id="fid_491"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsFourMember"
      decimals="0"
      id="fid_450"
      unitRef="Shares">6250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsFourMember"
      id="fid_506">P1Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsFourMember"
      decimals="0"
      id="fid_478"
      unitRef="Shares">6250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsFourMember"
      decimals="INF"
      id="fid_492"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsFiveMember"
      decimals="0"
      id="fid_451"
      unitRef="Shares">175000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsFiveMember"
      id="fid_507">P1Y10M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsFiveMember"
      decimals="0"
      id="fid_479"
      unitRef="Shares">175000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsFiveMember"
      decimals="INF"
      id="fid_493"
      unitRef="USDPShares">1.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsSevenMember"
      decimals="0"
      id="fid_453"
      unitRef="Shares">1434721</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsSevenMember"
      id="fid_509">P3Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsSevenMember"
      decimals="0"
      id="fid_481"
      unitRef="Shares">1434721</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsSevenMember"
      decimals="INF"
      id="fid_495"
      unitRef="USDPShares">1.68</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsEightMember"
      decimals="0"
      id="fid_454"
      unitRef="Shares">172167</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsEightMember"
      id="fid_510">P3Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsEightMember"
      decimals="0"
      id="fid_482"
      unitRef="Shares">172167</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsEightMember"
      decimals="INF"
      id="fid_496"
      unitRef="USDPShares">2.18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsTenMember"
      decimals="0"
      id="fid_456"
      unitRef="Shares">28750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsTenMember"
      id="fid_512">P7Y3M25D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsTenMember"
      decimals="0"
      id="fid_484"
      unitRef="Shares">28750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsTenMember"
      decimals="INF"
      id="fid_498"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsElevenMember"
      decimals="0"
      id="fid_457"
      unitRef="Shares">375000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsElevenMember"
      id="fid_513">P7Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsElevenMember"
      decimals="0"
      id="fid_485"
      unitRef="Shares">375000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsElevenMember"
      decimals="INF"
      id="fid_499"
      unitRef="USDPShares">6.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsTwelveMember"
      decimals="0"
      id="fid_458"
      unitRef="Shares">1489</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2022-01-01to2022-12-31_tomz_WarrantsTwelveMember"
      id="fid_514">P0Y7M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31_tomz_WarrantsTwelveMember"
      decimals="0"
      id="fid_486"
      unitRef="Shares">1489</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31_tomz_WarrantsTwelveMember"
      decimals="INF"
      id="fid_500"
      unitRef="USDPShares">8.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_1125"
      unitRef="Shares">2792335</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="From2022-01-01to2022-12-31" id="fid_1126">P5Y6M29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_1124"
      unitRef="Shares">2792335</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-12-31"
      decimals="INF"
      id="fid_1123"
      unitRef="USDPShares">2.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_975">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 11. COMMITMENTS AND CONTINGENCIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Legal Contingencies&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We may become a party to litigation in the normal course of business. In the opinion of management, there are no legal matters involving us that would have a material adverse effect upon our financial condition, results of operations or cash flows. In addition, from time to time, we may have to file claims against parties that infringe on our intellectual property.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Product Liability&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;"&gt;As of December 31, 2022 and 2021, there were no claims against us for product liability.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;COVID-19 Pandemic&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;The COVID-19 pandemic has temporarily increased the global demand for disinfection products and services that help prevent the spread and transmission of COVID-19 virus. The Company&#x2019;s products have been identified as an essential disinfectant and decontamination vendor by various agencies and countries, which have materially affected its business and results of operations. The Company experienced a substantial increase in demand for our products and services in 2020 due to the pandemic. Throughout 2021, the Company experienced a reduction of demand due to various factors, including the closure of our major customers&#x2019; business operations due to the pandemic, which resulted in the suspension of many of its ongoing long-term projects. As the impact of the COVID-19 pandemic began to subside and economic activities gradually return to normal in 2022, customers reallocated their resources elsewhere and reduced their spending on disinfection products, which resulted in lower demand for our products. It is difficult to predict how COVID-19 pandemic will affect the Company&#x2019;s financial performance in early 2023, as the global economy gradually reopens, customers adjust and change their operations, and the Company implements new marketing and sales strategies in response.&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <tomz:ContractsAndAgreementsTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_976">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 12. CONTRACTS AND AGREEMENTS&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Director Compensation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In December 2017, we increased the annual fee to the members of our Board to $40,000, to be paid in cash on a quarterly basis, with the exception of the audit committee chairperson, whose annual fee we increased to $45,000, also to be paid in cash on a quarterly basis. Director compensation also includes the annual issuance of our common stock.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;For the year ended December 31, 2021, we issued an aggregate of 50,000 shares of common stock that were valued at $48,000 to members of our Board.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;For the year ended December 31, 2022, we issued an aggregate of 51,750 shares of common stock that were valued at approximately $54,000 to members of our Board.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Manufacturing Agreement&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In June 2020 we entered into a manufacturing agreement with Planet Innovation Products, Pty Ltd (&#x201c;PI&#x201d;).&#160; The agreement does not provide for any minimum purchase commitments and is for a term of three years. The agreement also provides for a warranty against product defects.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;Cloud Computing Service Contract&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Cloud Computing Service Contract&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;&lt;em&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/em&gt;&lt;/strong&gt;In May 2020 we entered into an agreement with a vendor for a cloud computing service contract. The contract provides for annual payments in the amount of $30,409 and has a term of 5 years. Approximate minimum future payments under the contract are as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160; &lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;60,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:ContractsAndAgreementsTextBlock>
    <us-gaap:PaymentForManagementFee
      contextRef="From2017-12-01to2017-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_354"
      unitRef="USD">40000</us-gaap:PaymentForManagementFee>
    <us-gaap:PaymentForManagementFee
      contextRef="From2017-12-01to2017-12-31_tomz_CommitteeChairpersonMember"
      decimals="0"
      id="fid_355"
      unitRef="USD">45000</us-gaap:PaymentForManagementFee>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_356"
      unitRef="Shares">50000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_358"
      unitRef="USD">48000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2022-01-01to2022-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_357"
      unitRef="Shares">51750</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2022-01-01to2022-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_359"
      unitRef="USD">54000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <tomz:TermOfAgreement
      contextRef="From2020-06-01to2020-06-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"
      id="fid_349">three years</tomz:TermOfAgreement>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights
      contextRef="AsOf2020-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_360"
      unitRef="Shares">30409</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights>
    <tomz:ApproximateMinimumContractPaymentsTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1023">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:92%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2023&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;60,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:ApproximateMinimumContractPaymentsTableTextBlock>
    <us-gaap:ContractualObligationDueInSecondYear
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_345"
      unitRef="USD">30000</us-gaap:ContractualObligationDueInSecondYear>
    <us-gaap:ContractualObligationDueInThirdYear
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_346"
      unitRef="USD">30000</us-gaap:ContractualObligationDueInThirdYear>
    <us-gaap:ContractualObligationDueInFourthYear
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_347"
      unitRef="USD">0</us-gaap:ContractualObligationDueInFourthYear>
    <us-gaap:ContractualObligation
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_348"
      unitRef="USD">60000</us-gaap:ContractualObligation>
    <us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_977">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="9" style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Accrued expenses and other current liabilities consisted of the following at:&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"/&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"/&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Commissions&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;442,805&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;228,665&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Payroll and related costs &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;136,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;241,434&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Director fees&#160;&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;34,650&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Sales Tax Payable&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(1,351&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,411&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued warranty (Note 14)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other accrued expenses &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;48,599&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;75,848&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;728,703&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;664,608&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1024">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="9" style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Accrued expenses and other current liabilities consisted of the following at:&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"/&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"/&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Commissions&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;442,805&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;228,665&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Payroll and related costs &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;136,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;241,434&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Director fees&#160;&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;34,650&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Sales Tax Payable&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(1,351&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,411&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued warranty (Note 14)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other accrued expenses &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;48,599&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;75,848&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;728,703&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;664,608&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_225"
      unitRef="USD">442805</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_226"
      unitRef="USD">228665</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_227"
      unitRef="USD">136000</us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent>
    <us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_228"
      unitRef="USD">241434</us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent>
    <tomz:DirectorFeesCurrentAndNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_229"
      unitRef="USD">34650</tomz:DirectorFeesCurrentAndNoncurrent>
    <tomz:DirectorFeesCurrentAndNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_230"
      unitRef="USD">31250</tomz:DirectorFeesCurrentAndNoncurrent>
    <tomz:SalesTaxPayable
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_231"
      unitRef="USD">-1351</tomz:SalesTaxPayable>
    <tomz:SalesTaxPayable
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_232"
      unitRef="USD">19411</tomz:SalesTaxPayable>
    <us-gaap:ExtendedProductWarrantyAccrualCurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_233"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
    <us-gaap:ExtendedProductWarrantyAccrualCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_234"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_235"
      unitRef="USD">48599</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_236"
      unitRef="USD">75848</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_237"
      unitRef="USD">728703</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_238"
      unitRef="USD">664608</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:GuaranteesTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_978">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 14. ACCRUED WARRANTY&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. The warranty is generally limited to a refund of the original purchase price of the product or a replacement part. We estimate warranty costs based on historical warranty claim experience.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; The following table presents warranty reserve activities at:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Beginning accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Provision for warranty expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;24,158&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;75,618&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Settlement of warranty claims&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(24,158&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(75,618&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Ending accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:GuaranteesTextBlock>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1025">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Beginning accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Provision for warranty expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;24,158&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;75,618&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Settlement of warranty claims&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(24,158&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(75,618&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Ending accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;68,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_239"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_240"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_242"
      unitRef="USD">24158</us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease>
    <us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_243"
      unitRef="USD">75618</us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease>
    <tomz:SettlementOfWarrantyClaims
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_244"
      unitRef="USD">-24158</tomz:SettlementOfWarrantyClaims>
    <tomz:SettlementOfWarrantyClaims
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_245"
      unitRef="USD">-75618</tomz:SettlementOfWarrantyClaims>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_249"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_246"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_980">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 15. INCOME TAXES&lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;The Company&#x2019;s income tax expense (benefit) consisted of:&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"/&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"/&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Current:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;State&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;(74,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(74,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;)&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;State&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(74,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;The Company&#x2019;s net income (loss) before income tax consisted of:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,509,585&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,781,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,509,585&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160; &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt"&gt;Our income tax expense differed from the amounts computed by applying the United States statutory corporate income tax rate for the following reasons:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt"&gt;On December&#160;22, 2017, the 2017 Tax Cuts and Jobs Act (&#x201c;Tax Act&#x201d;) was enacted into law making significant changes to the Internal Revenue Code. Changes include, but are not limited to, a federal corporate tax rate decrease from 35% to 21% for tax years beginning after December&#160;31, 2017, the transition of U.S. international taxation from a worldwide tax system to a territorial system and a one-time transition tax on the mandatory deemed repatriation of foreign earnings. We are required to recognize the effect of the tax law changes in the period of enactment, such as re-measuring our U.S. deferred tax assets and liabilities as well as reassessing the net realizability of our deferred tax assets and liabilities. The Tax Act did not give rise to any material impact on the consolidated balance sheets and consolidated statements of operations due to our historical loss position and the full valuation allowance on our net U.S. deferred tax assets.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:32.05pt"&gt;The reconciliation of taxes at the federal and state statutory rate to our provision for income taxes for the years ended December&#160;31, 2022 and 2021 was as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income (Loss) before income tax&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,509,585&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;US statutory corporate income tax rate&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income tax expense (benefit) computed at US statutory corporate income tax rate&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(806,417&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(1,002,844 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Reconciling items:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Change in valuation allowance on deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;553,005&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,334,294&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Provision to prior year tax return&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;&#160;36,032&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(60,646&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Incentive stock options and warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;183,076&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,139&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Gain Upon Debt Extinguishment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(116,083&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;34,034&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"/&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;25,894&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income tax expense (benefit)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(74,086&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Components of our deferred income tax assets (liabilities) are as follows:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred tax assets:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Reserve for Bad Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;470,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;470,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Inventory Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;27,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Accrued Vacation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;38,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;81,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Warranty Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Intangible Assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;257,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;404,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Capitalized Research and Development&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;67,000&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;-&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease right-of-use liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;241,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;267,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Net operating losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,639,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,124,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Valuation Allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(5,332,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,941,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Deferred Tax Assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;426,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;424,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&#160;&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred tax liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(217,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(277,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Property and Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(209,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(147,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(426,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(424,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Deferred Tax Assets and Liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits, which are, on a more likely than not basis, not expected to be realized; in accordance with ASC guidance for income taxes. As of December 31, 2022, we recorded a valuation allowance of $5,332,000 for the portion of the deferred tax assets that we do not expect to be realized. The valuation allowance on our net deferred taxes increased by $391,000 during the year ended December 31, 2022, primarily due to U.S. deferred tax assets incurred in the current year that cannot be realized. The effect on deferred income tax assets and liabilities of a change in tax rates is recognized in the period that such tax rate changes are enacted.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;For income tax purposes in the United States, we had available federal net operating loss carryforwards (&#x201c;NOL&#x201d;) as of December 31, 2022 and 2021 of approximately $17,479,000 and $15,262,000 respectively to reduce future federal taxable income. For income tax purposes in the United States, we had available state NOL carryforwards as of December 31, 2022 and 2021 of approximately $13,835,000 and $12,386,000 respectively to reduce future state taxable income. If any of the NOL&#x2019;s generated prior to 2018 are not utilized, they will expire at various dates through 2037. NOL&#x2019;s generated after 2017 carry forward indefinitely. There may be certain limitations as to the future annual use of the NOLs due to certain changes in our ownership.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;"&gt;Federal and state laws can impose substantial restrictions on the utilization of net operating loss and tax credit carry-forwards in the event of an &#x201c;ownership change,&#x201d; as defined in Section 382 of the Internal Revenue Code. We did not perform 382 study to determine if ownership change occurred.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;We record uncertain tax positions in accordance with ASC 740 on the basis of a two-step process whereby (1) we determine whether it is more likely than not that the tax positions will be sustained on the basis of the technical merits of the position and (2) for those tax positions that meet the more-likely-than-not recognition threshold, we recognize the largest amount of tax benefit that is more than 50 percent likely to be realized upon ultimate settlement with the related tax authority. As of December 31, 2022, and 2021, the management of the Company determined there were no reportable uncertain tax positions.&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1026">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;The Company&#x2019;s income tax expense (benefit) consisted of:&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"/&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"/&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Current:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;State&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;(74,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(74,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;)&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;State&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(74,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_251"
      unitRef="USD">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_252"
      unitRef="USD">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_253"
      unitRef="USD">0</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_254"
      unitRef="USD">-74000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_255"
      unitRef="USD">0</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_256"
      unitRef="USD">0</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_257"
      unitRef="USD">0</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_258"
      unitRef="USD">74000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_260"
      unitRef="USD">0</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_261"
      unitRef="USD">0</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_262"
      unitRef="USD">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_263"
      unitRef="USD">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_264"
      unitRef="USD">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_265"
      unitRef="USD">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_266"
      unitRef="USD">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_267"
      unitRef="USD">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <tomz:ProvisionForIncomeTaxes
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_268"
      unitRef="USD">0</tomz:ProvisionForIncomeTaxes>
    <tomz:ProvisionForIncomeTaxes
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_269"
      unitRef="USD">-74000</tomz:ProvisionForIncomeTaxes>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1027">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;The Company&#x2019;s net income (loss) before income tax consisted of:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,509,585&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,781,060&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;td style="width:1%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"&gt;$&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,509,585&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_270"
      unitRef="USD">-2880060</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_329"
      unitRef="USD">-4509585</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_272"
      unitRef="USD">0</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_271"
      unitRef="USD">0</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_274"
      unitRef="USD">-2781060</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_275"
      unitRef="USD">-4509585</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1028">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the Year Ended &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income (Loss) before income tax&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(2,880,060&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(4,509,585&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;US statutory corporate income tax rate&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income tax expense (benefit) computed at US statutory corporate income tax rate&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(806,417&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(1,002,844 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Reconciling items:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Change in valuation allowance on deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;553,005&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,334,294&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Provision to prior year tax return&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;&#160;36,032&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(60,646&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Incentive stock options and warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;183,076&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,139&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Gain Upon Debt Extinguishment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(116,083&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;34,034&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"/&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;25,894&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income tax expense (benefit)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(74,086&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <tomz:IncomeLossBeforeIncomeTax
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_276"
      unitRef="USD">-2880060</tomz:IncomeLossBeforeIncomeTax>
    <tomz:IncomeLossBeforeIncomeTax
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_277"
      unitRef="USD">-4509585</tomz:IncomeLossBeforeIncomeTax>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="From2022-01-01to2022-12-31"
      decimals="INF"
      id="fid_279"
      unitRef="Pure">0.2800</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_278"
      unitRef="Pure">0.2800</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_280"
      unitRef="USD">-806417</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_281"
      unitRef="USD">-1002844</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_283"
      unitRef="USD">553005</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_284"
      unitRef="USD">1334294</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_1132"
      unitRef="USD">36032</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_286"
      unitRef="USD">-60646</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_287"
      unitRef="USD">183076</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_288"
      unitRef="USD">5139</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_289"
      unitRef="USD">-116083</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_293"
      unitRef="USD">34034</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_294"
      unitRef="USD">25894</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_295"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_296"
      unitRef="USD">-74086</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_1029">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2021&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred tax assets:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Reserve for Bad Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;470,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;470,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Inventory Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;27,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Accrued Vacation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;38,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;81,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Warranty Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Intangible Assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;257,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;404,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Capitalized Research and Development&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;67,000&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;-&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease right-of-use liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;241,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;267,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Net operating losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,639,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,124,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Valuation Allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(5,332,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(4,941,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Deferred Tax Assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;426,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;424,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&#160;&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred tax liabilities:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(217,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(277,000&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Property and Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(209,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(147,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(426,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(424,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Deferred Tax Assets and Liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_298"
      unitRef="USD">470000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_299"
      unitRef="USD">470000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <tomz:InventoryReserve
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_330"
      unitRef="USD">27000</tomz:InventoryReserve>
    <tomz:InventoryReserve
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_331"
      unitRef="USD">0</tomz:InventoryReserve>
    <tomz:DeferredTaxAssetsAccruedVacation
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_300"
      unitRef="USD">38000</tomz:DeferredTaxAssetsAccruedVacation>
    <tomz:DeferredTaxAssetsAccruedVacation
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_301"
      unitRef="USD">81000</tomz:DeferredTaxAssetsAccruedVacation>
    <tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_302"
      unitRef="USD">19000</tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve>
    <tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_303"
      unitRef="USD">19000</tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_304"
      unitRef="USD">257000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_305"
      unitRef="USD">404000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_1134"
      unitRef="USD">67000</us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts>
    <us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1135"
      unitRef="USD">0</us-gaap:DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts>
    <tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_306"
      unitRef="USD">241000</tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities>
    <tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_307"
      unitRef="USD">267000</tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_308"
      unitRef="USD">4639000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_309"
      unitRef="USD">4124000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_310"
      unitRef="USD">5332000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_311"
      unitRef="USD">4941000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_312"
      unitRef="USD">426000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_313"
      unitRef="USD">424000</us-gaap:DeferredTaxAssetsNet>
    <tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_315"
      unitRef="USD">-217000</tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets>
    <tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_316"
      unitRef="USD">-277000</tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_317"
      unitRef="USD">209000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_318"
      unitRef="USD">147000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilities
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_319"
      unitRef="USD">426000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_320"
      unitRef="USD">424000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_321"
      unitRef="USD">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_322"
      unitRef="USD">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <tomz:NetDeferredTaxAssetsValuationAllowance
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_328"
      unitRef="USD">-5332000</tomz:NetDeferredTaxAssetsValuationAllowance>
    <tomz:NetDeferredTaxAssetsIncreasedValuationAllowance
      contextRef="From2022-01-01to2022-12-31"
      decimals="0"
      id="fid_327"
      unitRef="USD">391000</tomz:NetDeferredTaxAssetsIncreasedValuationAllowance>
    <us-gaap:OperatingLossCarryforwards
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_324"
      unitRef="USD">17479000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_323"
      unitRef="USD">15262000</us-gaap:OperatingLossCarryforwards>
    <tomz:StateNetOperatingLossCarryforwards
      contextRef="AsOf2022-12-31"
      decimals="0"
      id="fid_326"
      unitRef="USD">13835000</tomz:StateNetOperatingLossCarryforwards>
    <tomz:StateNetOperatingLossCarryforwards
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_325"
      unitRef="USD">12386000</tomz:StateNetOperatingLossCarryforwards>
    <us-gaap:ConcentrationRiskDisclosureTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_981">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 16. CUSTOMER CONCENTRATION&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;The Company had certain customers whose accounts receivable balances individually represented 10% or more of the Company&#x2019;s accounts receivable.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As of December 31, 2022, one customers accounted for 14% of our gross accounts receivable.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;As of December 31, 2021, three customers accounted for 42% of our gross accounts receivable.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;For the years ended December 31, 2022 and 2021, we had no customers who represented 10% or more of revenue.&lt;/p&gt;</us-gaap:ConcentrationRiskDisclosureTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-01to2022-03-31_tomz_OneCustomerMember"
      decimals="INF"
      id="fid_361"
      unitRef="Pure">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-01to2022-03-31_tomz_TwoCustomerMember"
      decimals="INF"
      id="fid_362"
      unitRef="Pure">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31_tomz_ThreeCustomerMember"
      decimals="INF"
      id="fid_365"
      unitRef="Pure">0.42</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      id="fid_363"
      unitRef="Pure">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:SubsequentEventsTextBlock contextRef="From2022-01-01to2022-12-31" id="fid_982">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 17. SUBSEQUENT EVENTS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;Pursuant to the agreement with our Board of Directors, in January 2023, we issued an aggregate of 60,000 shares of common stock valued at approximately $51,000 to independent directors of the Board. The agreements with our Board provide for the annual issuance of shares of our common stock.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In January 2023 we issued an option to purchase 100,000 shares of common stock to our Chief Executive Officer at an exercise price of $0.85 per share pursuant to an employment agreement. The option was valued at $75,635 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 139%; expected dividend yield, 0%; risk free interest rate, 3.59%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $0.76.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In January 2023 we issued an option to purchase 50,000 shares of common stock to our Chief Operating Officer at an exercise price of $0.85 per share pursuant to an employment agreement. The option was valued at $37,817 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Operating Officer with the following assumptions: volatility, 139%; expected dividend yield, 0%; risk free interest rate, 3.59%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $0.76.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0.5in"&gt;In January 2023 we issued an option to purchase 25,000 shares of common stock to our Chief Financial Officer at an exercise price of $0.85 per share pursuant to an employment agreement. The option was valued at $18,909 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Financial Officer with the following assumptions: volatility, 139%; expected dividend yield, 0%; risk free interest rate, 3.59%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $0.76.&lt;/p&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:ConversionOfStockSharesIssued1
      contextRef="From2023-01-01to2023-01-31_srt_BoardOfDirectorsChairmanMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1106"
      unitRef="Shares">60000</us-gaap:ConversionOfStockSharesIssued1>
    <us-gaap:ConversionOfStockAmountIssued1
      contextRef="From2023-01-01to2023-01-31_srt_BoardOfDirectorsChairmanMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1107"
      unitRef="USD">51000</us-gaap:ConversionOfStockAmountIssued1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1085"
      unitRef="Shares">100000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1082"
      unitRef="USDPShares">0.85</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <tomz:StockOptionValued
      contextRef="AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1088"
      unitRef="USD">75635</tomz:StockOptionValued>
    <tomz:StockOptionTerm
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      id="fid_1091">P10Y</tomz:StockOptionTerm>
    <tomz:Volatility
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1094"
      unitRef="Pure">1.39</tomz:Volatility>
    <tomz:ExpectedDividendYield
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1097"
      unitRef="Pure">0</tomz:ExpectedDividendYield>
    <tomz:RiskFreeInterestRate
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1100"
      unitRef="Pure">0.0359</tomz:RiskFreeInterestRate>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      id="fid_1108">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <tomz:GrantDateFairValuePerShareOfCommonStock
      contextRef="From2023-01-01to2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1103"
      unitRef="USDPShares">0.76</tomz:GrantDateFairValuePerShareOfCommonStock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1086"
      unitRef="Shares">50000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="AsOf2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1083"
      unitRef="USDPShares">0.85</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <tomz:StockOptionValued
      contextRef="AsOf2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1089"
      unitRef="USD">37817</tomz:StockOptionValued>
    <tomz:StockOptionTerm
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      id="fid_1092">P10Y</tomz:StockOptionTerm>
    <tomz:Volatility
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1095"
      unitRef="Pure">1.39</tomz:Volatility>
    <tomz:ExpectedDividendYield
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1098"
      unitRef="Pure">0</tomz:ExpectedDividendYield>
    <tomz:RiskFreeInterestRate
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1101"
      unitRef="Pure">0.0359</tomz:RiskFreeInterestRate>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      id="fid_1109">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <tomz:GrantDateFairValuePerShareOfCommonStock
      contextRef="From2023-01-01to2023-01-31_srt_ChiefOperatingOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1104"
      unitRef="USDPShares">0.76</tomz:GrantDateFairValuePerShareOfCommonStock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1087"
      unitRef="Shares">25000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="AsOf2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1084"
      unitRef="USDPShares">0.85</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <tomz:StockOptionValued
      contextRef="AsOf2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1090"
      unitRef="USD">18909</tomz:StockOptionValued>
    <tomz:StockOptionTerm
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      id="fid_1093">P10Y</tomz:StockOptionTerm>
    <tomz:Volatility
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1096"
      unitRef="Pure">1.39</tomz:Volatility>
    <tomz:ExpectedDividendYield
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1099"
      unitRef="Pure">0</tomz:ExpectedDividendYield>
    <tomz:RiskFreeInterestRate
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1102"
      unitRef="Pure">0.0359</tomz:RiskFreeInterestRate>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      id="fid_1110">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <tomz:GrantDateFairValuePerShareOfCommonStock
      contextRef="From2023-01-01to2023-01-31_srt_ChiefFinancialOfficerMember_us-gaap_SubsequentEventMember"
      decimals="INF"
      id="fid_1105"
      unitRef="USDPShares">0.76</tomz:GrantDateFairValuePerShareOfCommonStock>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>93
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( 'J <%8'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    " !Z@'!6[;*)C.T    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+!
M:L,P#(9?9?B>R(DA!Y/ZLK)3"X,5-G8SMMJ:Q8FQ-9*^_1*O31G; ^QHZ?>G
M3Z#6!&F&B,]Q"!C)87J8?-<G:<*&G8F"!$CFC%ZG<D[T<_,X1*]I?L83!&T^
M] FAYKP!CZ2M)@T+L @KD:G6&FDB:AKB%6_-B@^?L<LP:P []-A3@JJL@*EE
M8KA,70MWP (CC#Y]%]"NQ%S]$YL[P*[)*;DU-8YC.8J<FW>HX&V_>\GK%JY/
MI'N#\Z_D)%T";MAM\JMXW!Z>F*IY+0HNBJHYU%QR(47SOKC^\+L+^\&ZH_O'
MQC=!U<*ONU!?4$L#!!0    ( 'J <%:97)PC$ 8  )PG   3    >&PO=&AE
M;64O=&AE;64Q+GAM;.U:6W/:.!1^[Z_0>&?V;0O&-H&VM!-S:7;;M)F$[4X?
MA1%8C6QY9)&$?[]'-A#+E@WMDDVZFSP$+.G[SD5'Y^@X>?/N+F+HAHB4\GA@
MV2_;UKNW+][@5S(D$4$P&:>O\, *I4Q>M5II ,,X?<D3$L/<@HL(2W@4R]9<
MX%L:+R/6ZK3;W5:$:6RA&$=D8'U>+&A T%116F]?(+3E'S/X%<M4C66C 1-7
M02:YB+3R^6S%_-K>/F7/Z3H=,H%N,!M8('_.;Z?D3EJ(X53"Q,!J9S]6:\?1
MTDB @LE]E 6Z2?:CTQ4(,@T[.IU8SG9\]L3MGXS*VG0T;1K@X_%X.+;+THMP
M' 3@4;N>PIWT;+^D00FTHVG09-CVVJZ1IJJ-4T_3]WW?ZYMHG J-6T_3:W?=
MTXZ)QJW0> V^\4^'PZZ)QJO0=.MI)B?]KFNDZ19H0D;CZWH2%;7E0-,@ %AP
M=M;,T@.67BGZ=90:V1V[W4%<\%CN.8D1_L;%!-9ITAF6-$9RG9 %#@ WQ-%,
M4'RO0;:*X,*2TER0UL\IM5 :")K(@?5'@B'%W*_]]9>[R:0S>IU].LYKE']I
MJP&G[;N;SY/\<^CDGZ>3UTU"SG"\+ GQ^R-;88<G;CL3<CH<9T)\S_;VD:4E
M,L_O^0KK3CQG'U:6L%W/S^2>C'(CN]WV6'WV3T=N(]>IP+,BUY1&)$6?R"VZ
MY!$XM4D-,A,_")V&F&I0' *D"3&6H8;XM,:L$> 3?;>^",C?C8CWJV^:/5>A
M6$G:A/@01AKBG'/F<]%L^P>E1M'V5;S<HY=8%0&7&-\TJC4LQ=9XE<#QK9P\
M'1,2S90+!D&&ER0F$JDY?DU($_XKI=K^G-- \)0O)/I*D8]ILR.G=";-Z#,:
MP4:O&W6':-(\>OX%^9PU"AR1&QT"9QNS1B&$:;OP'J\DCIJMPA$K0CYB&38:
M<K46@;9QJ81@6A+&T7A.TK01_%FL-9,^8,CLS9%USM:1#A&27C="/F+.BY 1
MOQZ&.$J:[:)Q6 3]GE[#2<'H@LMF_;A^AM4S;"R.]T?4%TKD#R:G/^DR- >C
MFED)O816:I^JAS0^J!XR"@7QN1X^Y7IX"C>6QKQ0KH)[ ?_1VC?"J_B"P#E_
M+GW/I>^Y]#VATK<W(WUGP=.+6]Y&;EO$^ZXQVM<T+BAC5W+-R,=4KY,IV#F?
MP.S]:#Z>\>WZV22$KYI9+2,6D$N!LT$DN/R+RO JQ GH9%LE"<M4TV4WBA*>
M0AMNZ5/U2I77Y:^Y*+@\6^3IKZ%T/BS/^3Q?Y[3-"S-#MW)+ZK:4OK4F.$KT
ML<QP3A[+##MG/)(=MG>@'37[]EUVY".E,%.70[@:0KX#;;J=W#HXGIB1N0K3
M4I!OP_GIQ7@:XCG9!+E]F%=MY]C1T?OGP5&PH^\\EAW'B/*B(>ZAAIC/PT.'
M>7M?F&>5QE T%&ULK"0L1K=@N-?Q+!3@9& MH >#KU$"\E)58#%;Q@,KD*)\
M3(Q%Z'#GEUQ?X]&2X]NF9;5NKREW&6TB4CG":9@39ZO*WF6QP54=SU5;\K"^
M:CVT%4[/_EFMR)\,$4X6"Q)(8Y07IDJB\QE3ON<K2<15.+]%,[82EQB\X^;'
M<4Y3N!)VM@\",KF[.:EZ93%GIO+?+0P)+%N(61+B35WMU>>;G*YZ(G;ZEW?!
M8/+]<,E'#^4[YU_T74.N?O;=X_INDSM(3)QYQ1$!=$4"(Y4<!A87,N10[I*0
M!A,!S93)1/ "@F2F'("8^@N]\@RY*17.K3XY?T4L@X9.7M(E$A2*L P%(1=R
MX^_ODVIWC-?Z+(%MA%0R9-47RD.)P3TS<D/85"7SKMHF"X7;XE3-NQJ^)F!+
MPWING2TG_]M>U#VT%SU&\Z.9X!ZSAW.;>KC"1:S_6-8>^3+?.7#;.MX#7N83
M+$.D?L%]BHJ $:MBOKJO3_DEG#NT>_&!()O\UMND]MW@#'S4JUJE9"L1/TL'
M?!^2!F.,6_0T7X\48JVFL:W&VC$,>8!8\PRA9CC?AT6:&C/5BZPYC0IO0=5
MY3_;U UH]@TT')$%7C&9MC:CY$X*/-S^[PVPPL2.X>V+OP%02P,$%     @
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
M3/-S?-[A9)<=A9\(%P?KK!E@)'Q!!HC[&T+X2T>>KLM_4YS_ 5!+ P04
M" !Z@'!6<#$4<90%  "V%@  &    'AL+W=O<FMS:&5E=',O<VAE970T+GAM
M;*U8;6_;-A#^*X0W# G0Q"(E45+F&$CLM VP)D&<KI\5F[:%2J)'TDZV7[_3
M2R1+I+@6RQ?KQ<\=GSL>[Z$X>>'BN]PRIM!KEN;R<K15:G<Q'LOEEF6Q/.<[
MEL,_:RZR6,&CV(SE3K!X51IEZ9@X#AUG<9*/II/RW8.83OA>I4G.'@22^RR+
MQ=_7+.4OER,\>GOQF&RVJG@QGDYV\88MF/JZ>Q#P-&Z\K)*,Y3+A.1)L?3FZ
MPA<S$A8&)>+/A+W(HWM4A/+,^??BX79U.7(*1BQE2U6XB.%R8#.6IH4GX/%7
M[734C%D8'M^_>?]8!@_!/,>2S7CZ+5FI[>4H'*$56\?[5#WRE\^L#L@O_"UY
M*LM?]%)A?0 O]U+QK#8&!EF25]?XM4[$D0&F P:D-B!] V_ P*T-W#+0BED9
MUCQ6\70B^ L2!1J\%3=E;DIKB";)BVE<* '_)F"GIK/[N_G-W>)FCN!N<?_'
M[?SJ"1X63W#Y<G/WM$#W']']P\WCU=,M - 9^KJ8HY-?3R=C!<,73L;+>JCK
M:B@R,!0FZ O/U5:BFWS%5ET'8^#=D"=OY*^)U>.<+<^1BS\@XA!B(#3[<7-L
MH>,VN71+?^[[Y-*4P6H SSQ L:0OY"Y>LLL1K%G)Q(&-IK_]@JGSNRGZ=W+6
MR877Y,*S>9\NXI3)#RAGRA1F94M+VZ+1'*:AZX9.%$W&A^,(=%P0^*X?D@;7
M(><WY'PKN1F7"O$U*DF:^%7F_M&X+@D"ZGD]?@8<IC2,L)D?;?A1*[]/@DN)
M'@1?)\;T46U8WZ&.Y_L]>CK.\T-*A^@%#;W 6N?W.R9BE>0;=/,*<B*9O#"Q
M#-ZSEM_)62?>L(DWM$Y',1%,%L(5I^@C,Y=,J,^)2UV,>U-B@D'AN^89B1J&
MD97AG$'8RR2NE#%?H:N,"Y7\4[XPL8T,!1YAVJ]O'48BCU+?S!8[K>@X]NX
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
MA_=Q25D"PPF;QF#71I+(<;.<+>*Z1Q;TWD-CM8D^T8%@B=<EEF=;0X9TFMA
M*UIXXC5$NJKV%=F;9ZQVSUJLB+K&V3-')UK0H?46/A8F6*BU:*0+K2_JWN=C
MM='7XDBPZ*-A" P'T$S=RMEJV:(GP=Y0*TEGEF<./8FNSOHB[#T^5IM\]4,4
M%DWRV/3 \3G";4"K-]>*%FI%BT[AI"_&WJ)CM4?_0JN*%AP>H8H$W:Z:&T^-
MPA^LBM/ZA=FFTW+/M*(%6'3G%C;%V::S:*0+K:_DWNQCM=M_24G%0)-8:2+^
M$XNZ_MD2N<)  XF& DDZLQUO: EU==9G?N_+L=J8O^!&3"GG.AWV#(OF6>I&
MQ##LNXXE<2,ZVXMTH?7UV9MVK';M+[@1N3Z^:!^P;</-5-@68J3$C4C@@'E;
MF$AB''$=UR)$<"-BY-AV;-,"X0<WA<G!:]SFM?XG6CVF,!PR]@"YQEL7%D2U
M?5.^/>'EJGVS^[7DO,S;PR6C":N: /C]H2SY\TGSLGCW_Q6F_P-02P,$%
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
M?">4!X1"VP3@:F=7*B,G;"XRY97)^\Z&:D8IV"?1(2U$\AXA*:D]@#G;%*6
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
MA5+DBA<N3.]=@J)%6'^_>/^XO.NHE6O-C;^ZSZ91> ^D-O7#^:5]9[<=&XY
M[[[5 Q7L[?7XU]FED9RT[P%&UD?P+(?,R3"( 9/=VF_T^..[:=\_W? D^.<W
MR*O-^!\9X0O<RU;^)0[WK?MW3*[EG^_PC\L_@D(PGF;>$%B:TJO#P>7YD63J
M[1]MM>1_S&-2M>1"^>/<)!3DX 'Z?5I1T*%_8 #WK[O\]+]02P,$%     @
M>H!P5B (&U=1 @  . 4  !@   !X;"]W;W)K<VAE971S+W-H965T.2YX;6R=
M5%%/VS 0_BNG;)HV*6L2)[2$M9$H%-$'H"J,/;O)M;%([,QV"?S[V4Z;=1IT
MTE[BN_-]G[]S?#=NA7Q2):*&E[KB:N*56C=G0:#R$FNJ!J)!;G;60M94&U=N
M M5(I(4#U55 PG 8U)1Q+QN[V$)F8['5%>.XD*"V=4WEZQ0KT4Z\R-L'EFQ3
M:AL(LG%#-WB/^GNSD,8+>I:"U<@5$QPDKB?>>70V36R^2WADV*H#&VPE*R&>
MK#,O)EYH!6&%N;8,U"S/>(%598F,C)\[3J\_T@(/[3W[E:O=U+*B"B]$]8,5
MNIQXIQX4N*;;2B]%>XV[>DXL7RXJY;[0=KE1[$&^55K4.[!14#/>K?1E=P\'
M@-/P'0#9 8C3W1WD5%Y23;.Q%"U(FVW8K.%*=6@CCG'[4^ZU-+O,X'0VOWV<
MW3[<+>>S^W&@#:$-!_D./.W Y!UP1.!&<%TJF/$"BS\) J.DET/V<J;D*.,E
MY@.((Q](2,@1OK@O+W9\\?^5UX&3M\&V'\Y40W.<>.;!*Y3/Z&6?/D3#\-L1
M:4DO+3G&_B]I1\%O2[N]>YA!/( #9C 7BO4*97^I?T4BN&*<F1=4P$:(0L%'
MB/V4I'X8AL9.?)+&?G@:PI*V<$,U2D8K!<,T\M,TA7@T\I,TA#E_1JZ%?(5E
MIP<^IR>.XPM\=3R)\2W"VJ,D]HGA?.L>@X/77*/<N)Y5D(LMU]W#[J/]6#CO
MNN%W>C=3;JC<,*Z@PK6!AH/1B0>RZ]/.T:)QO;$2VG2:,TLSVE#:!+._%D+O
M'7M /RRS7U!+ P04    " !Z@'!6B!,W-DP"   M!0  &0   'AL+W=O<FMS
M:&5E=',O<VAE970Q,"YX;6R=E%%OVC 0Q[_*R:OVA$@(@:(.(I7"M#ZTH-)U
MSR8YB-7$SFS3E&_?LP,9VUHT[2&)S[[[^7^.[\:UTL\F1[3P6A;23%AN;745
M!";-L>2FJRJ4M+)1NN263+T-3*619SZH+((H#(=!R85DR=C/+74R5CM;"(E+
M#697EESOIUBH>L)Z[#CQ(+:Y=1-!,J[X%E=HOU=+35;04C)1HC1"2="XF;#K
MWM4T=O[>X4E@;4[&X#)9*_7LC-MLPD(G" M,K2-P^KS@#1:% Y&,GP<F:[=T
M@:?C(_VKSYUR67.#-ZKX(3*;3]B(088;OBOL@ZJ_X2&?@>.EJC#^#77CVQLR
M2'?&JO(03 I*(9LO?SV<PTG */P@(#H$1%YWLY%7.>.6)V.M:M#.FVANX%/U
MT21.2/=35E;3JJ XFSS-[V>+!YC-EXO5[>-J'%B"NJ4@/0"F#2#Z -"+X$Y)
MFQN8RPRSWP$!J6DE14=)T^@L<89I%_J]#D1A%)WA]=L4^Y[7__\4&T#\/L#5
MQ96I>(H31A??H'Y!EGS^U!N&7\[(BUMY\3GZO\@[#[A?/,XA[L(?(%A(H*/$
M<HVZ/4[@,OMKEMXU@JM@2P]F\((R4YHN=Z6,L ;4!B[B^+(3#AK 130:=0:C
M88?*TE3H"ZO8=X!Z!+AV =5.ISG5"BB=H39^04C"6J7WW?<.+3BYPB7JK2]4
M ZG:2=O<YG:V[07730G\<F\:R1W76R$-%+BAT+![.6"@F^)L#*LJ7Q!K9:F\
M_#"G?H;:.=#Z1BE[--P&;8=,W@!02P,$%     @ >H!P5D89)VRN P  ^0<
M !D   !X;"]W;W)K<VAE971S+W-H965T,3$N>&ULI55M;]LX#/XKA%?LDRY^
M=YPN"9"V&:[ VN6Z;H?[J-I,+,RV/$ENVOWZH^342[&NP+ /B42)?/B0-*GY
M7JJOND(T\-#4K5YXE3'=J>_KHL*&ZXGLL*6;K50--R2JG:\[A;QT1DWM1T&0
M^0T7K;><N[.-6LYE;VK1XD:![IN&J\<SK.5^X87>T\&-V%7&'OC+><=W^ G-
MYVZC2/)'E%(TV&HA6U"X77BK\/0LL?I.X8O O3[:@XWD3LJO5K@L%UY@"6&-
MA;$(G)9[/,>ZMD!$X]L!TQM=6L/C_1/Z>Q<[Q7+'-9[+^E]1FFKAY1Z4N.5]
M;6[D_F\\Q)-:O$+6VOW#?M"-8@^*7AO9'(R)02/:8>4/ASP<&>3!+PRB@T'D
M> ^.',L+;OARKN0>E-4F-+MQH3IK(B=:6Y1/1M&M(#NSW-Q\W*QO;O^#U?4%
MK/_Y?+FY6E_?SGU#V%;#+PXX9P-.] N<,((KV9I*P[HML7P.X!.ID5GTQ.PL
M>A7Q HL)Q"&#*(BB5_#B,=+8X<5_'.F D[R,8[OD5'>\P(5';:!1W:.W?/LF
MS()WK[!,1I;):^B_P?)UG.N/MVM()_ R'FP4M;4RC\#;$O!;+SIJ- .%I&[3
M!N063(6PE34UK6AWP,TI4$&PN4,U%N6GDQ#>]ZH5IE?H@+?BP>XUG$"<)2P/
M9W:73ED49[ >O4969FD80,BR/'>W7[ 214VF6<"F0?RTG,NFZPUYM/!:;LV>
MDZ\HR5@6YQ#%$0O"*7Q ZM-*UB6(IE/R'JT;#?$L9G$>0IQG+(P"N,66D_O+
M'SJPL@'SMD!(@I0%03"NY[P3AM?B.Y;$0A.<:&T:=Q2?AK=O\B@,W\&ME+7+
M%]&[(@(:_H)XFK$\2R"F"*8L2(D 2P.B,,V(J=:GL"J*ONEK;@B[1/JJ"L'=
MS(I8/ W9E+BZP%B>3@\FSPHXII)!2W/\A/(8QRG]0K=/**<QY9[&F"OK(W*E
M 6V?OE!4"VAKR9Y3V7,J8QPF+,MF3N<DFLU(2!G-9MVAFZ[UX^2WO?!&*B.^
M#U[LAS=4Y:ARP,>J#"QF+)PE#L+*Q%$JZX7VM:T\X .]67KX!D5;U+V]W0M3
M4<EVV*+BM;OC)4U4^MX5M^1',^)A [#-0-4L75FTH<61(8HV]8ZOGKS4\O[1
M.&Y0[=RCHPFO;\TPF<?3\5U;#>/\A_KP*%YQM1.MC6M+IL%DFGJ@AH=F$(SL
MW'"_DX:>"K>MZ&U&917H?BNE>1*L@_&U7_X/4$L#!!0    ( 'J <%8::%?9
MEP,  'H(   9    >&PO=V]R:W-H965T<R]S:&5E=#$R+GAM;*56;9/B-@S^
M*YITIY\RY 427@K,P.VV9>9NRQRT-_UH$H5D+K%3VUEV[]>?[(0<UUV8OGP
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
M"3# O-@B>9=SSUW(DXUU/WQ%%,3/6AM_.JI":#Y.ISZKJ)9^8ALR."FLJV7
MTI53WSB2>52J]70QF[V;UE*9T?(D[MVYY8EM@U:&[ISP;5U+MSTG;3>GH_FH
MW_BJRBKPQG1YTLB2[BG\U=PYK*:#E5S59+RR1C@J3D=G\X_GQRP?!;XIVOB]
M;\&1K*S]P8OK_'0T8T"D*0ML0>)O31>D-1L"C+\[FZ/!)2ON?_?6?X^Q(Y:5
M]'1A]7>5A^IT]&$D<BIDJ\-7N_F3NGC>LKW,:A]_Q2;)'LU&(FM]L'6G# 2U
M,NE?_NQXV%/X\)S"HE-81-S)441Y*8-<GCB[$8ZE88T_8JA1&^"4X:3<!X=3
M!;VPO/AR<W/]<'-U^W OSFXOQ<67VX?KVS^N;B^NK^Y/I@$N6'":=>;.D[G%
M,^;F"W%C3:B\N#(YY4\-3(%M +CH 9XO7K1X2=E$',W'8C%;+%ZP=S0$?!3M
M'?U? 2=SQX?-<<]\](W,Z'2$IO#DUC1:OGXU?S?[] +8XP'L\4O6_SO8E\W=
M?GFX$O/Y1+QH5WRF4FIQ@3PJ4Y+)%'GQG5!U6[&BS-8DI&BD"UL1K- JJ%+&
M#E-&A(J$X6[1(K.M\R1L(5:M!Q#O)^(Z2=A&&5; 62T->A]='L9\Y&#;L0FA
M(PBT72#G87IM]1IP1.LA)P.:O=6YJ.2:T4",G(*\S-?$7JDHT/:B;=A+ZT2A
MC$0@$9;)%<,=8Z9X]*YG&!AR+@:!E1.9])4H,*\29)GW&H6SM0@82APY_X_%
M)A$3@6"S4)I$IJ6JO9 EAJ(/D2OF,.)6IG!,J^B0*1,PD@"V!;C&,9"PG8@[
M9_,6$7Q6<J7 \5:<1:!H!ZI7Y(:6$-+D_#'O^=M0(O ?(, ;1CA[B'9U;Y>+
MX=OUY9OY;^(.IJA6F7A CH;=IM^M)$*@NK%..J6W0)[A&O"4QYR6VJX0 409
M$+O*%=)>=-.W\^LC7&X3E?6,5*0;G-,:11!-I>LE2@8GC:^5]UVY#*C6RK7(
M3D1J:V#<OG[U83%__\GO7,6<K(A0F3ELJT(!JV0( M7(.PRX1RGAG5WF*'$3
M)&9MJFK RA'-:BO6B-NV3&G7%"R.,C?!8852J%16):]]08(F&4L1GA4@]:T0
M50_6WY.8!/W$@8([1HZ;<^49)^/NV>>NVR.=2^HPUY!#F<Q$WJ;JA9<^M>S3
MV;:L<&OO:ND9$([8>)>/SG-GLR>HP%UK'1@!2-WFW+9L+]/6MRZ.!(99RT?N
MM7C'H6F[_.THVNO) YA[NA.)3&^:+;[U3?=F2.-ER__,O36E92@:'V^0GIJ)
M>D1NP/F9C\H* :,YH! .ML *0\DP$LX$BBHRS/5B^32^,%1L]=+)O(WI=Q1:
M%W6ZN9CRL!CO(H<,1&TF0^HEY3@J4,1I(^UIDP9C+!F0/TAQI)%=!'NPVPZ1
MA+&&\?%,R6#>842!<%44*H,. T<[Y@JT5+B\_LW)1FG=%?E^U0SMN!N]R&=\
M1:*0& A)!W[ Q=&8NW)OB"1&MT]8Y&>HWR=-YH_X3CU829ZHB91=V8S3"-FK
M9.17Q\O&"X,'(YZA/X@ON=0I4H-OCY$3J%2I8T <KA!/DT.7^73OV05(97Q<
M^C01T@MLV!W>KV?IV;833X_?&^E*C&G<>@549Y/W;T?"I0=E6@3;Q$?<R@;$
M'S\K#$ER+(#SPMK0+]C!\*I?_@)02P,$%     @ >X!P5CC5Q87D P  5 D
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
MFG=OSI6P7"$'"G-VC<:GQP'83L>["9FJU<Z-(;[)[;#@IP^M-^#]W!C:37R
MX3%=_ 102P,$%     @ >X!P5C"O%&V#"@  $QL  !D   !X;"]W;W)K<VAE
M971S+W-H965T,C$N>&ULK5G;<MLX$OT5E":9LJLH6:(NEIW$58Z3V?56;A7G
MLOL(D9"%"DEH -"*YNOW= .D:$?RI++[8(NDT-VG[]W4\XVQW]Q**2^^ET7E
M7O16WJ_/3TY<ME*E= .S5A6^61I;2H];>WOBUE;)G(G*XB0=#F<GI=15[^(Y
M/_M@+YZ;VA>Z4A^L<'592KM]J0JS>=$;]9H''_7MRM.#DXOG:WFK;I3_O/Y@
M<7?2<LEUJ2JG326L6K[H78[.7T[H/!_XHM7&=:X%:;(PYAO=7.<O>D,"I J5
M>>(@\7&GKE11$"/ ^#/R[+4BB;![W7#_@W6'+@OIU)4IONK<KU[TYCV1JZ6L
M"__1;/ZIHCY3XI>9PO%_L0EG1^.>R&KG31F)@:#45?B4WZ,=.@3SX0&"-!*D
MC#L(8I2OI)<7SZW9"$NGP8TN6%6F!CA=D5-NO,6W&G3^XOK=U?NWK\6GRW^_
MOGE^XL&1GI]DD?IEH$X/4(]2\=94?N7$ZRI7^7T&)X#2XDD;/"_31SF^4ME
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
M8*_?-U]P&9DMLKV!H)WD"&:W#Q5\;?7&M/'>KX!K-K:O\R3]=OJ0+DJZSHI
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
M#/TKA#<,&^#5MI387I<$2-L,5^"ZY;ILPSXJ-I,(LRU/DION?OU1<N+V<%F
M^Y"(E,C'1]IZGNR5_F%VB!8>ZZHQTV!G;7L91:;882W,A6JQH9.-TK6PY.IM
M9%J-HO1)=16Q.$ZC6L@FF$W\WE+/)JJSE6QPJ<%T=2WTKRNLU'X:),%QXUYN
M=]9M1+-)*[;X&>V7=JG)BP:44M;8&*D:T+B9!O/D\FKDXGW 5XE[\\P&U\E:
MJ1_.N2VG0>P(886%=0B"E@>\QJIR0$3CYP$S&$JZQ.?V$?V#[YUZ60N#UZKZ
M)DN[FP9Y "5N1%?9>[7_ P_]C!U>H2KC_V'?QW(60-$9J^I#,C&H9=.OXO$P
MAV<)>?R;!'9(8)YW7\BSO!%6S"9:[4&[:$)SAF_59Q,YV;B'\MEJ.I649V?+
M^T_+Q?WJ.\P_WL#BKR^WR[O%QQ6\7HEUA>;-)+)4Q(5&Q0'PJ@=DOP%,&-RI
MQNX,+)H2RW\#1,1NH,B.%*_86<0;+"Z )R&PF+$S>'QHF7L\_K]:/M5ICS,Z
MC>.NRZ5I18'3@.Z#0?V P>S5BR2-WY]A.1I8CLZASY::+IZVOT T)2Q^=K*E
MJV!/L3R+<YHET$RQ7J,>YOJ?G00^=+J1MM/H*6SDH[,-O 2>CL(\>>>L<18R
MGC[Q ^;\<)S$D(1IGOO3K[B3!;U-D,9A%O/C<JWJMK-4T<$;M;%[0;78* U3
MG@/C+(R3#/Y$NG,[594@ZU:K!W1E#/!W/.1Y CQ/PX3%L,)&4/G;IQB85Z0X
MHBD01O$XC.-X6*]%*ZVHY-]8$@M#<+(!&OB6^C/PZD7.DN0]K)2B86X]O3LB
M8. M\"P-\W0$G#K(PGA,!,)Q3!2RE)@:<PGSHNCJKA*6L$NDD1=2>/UA(<^2
M,".NOK$P'V>'E-./.H2&-/DES9'S,?T2;X]HIIQF?^H-BY[)0(UZZ\7.0*&Z
MQO:*,.P.>CKO9>0IO!?C.Z&WLC%0X892XXML'(#N!:YWK&J]J*R5)8GRYHZ^
M":A= )UOE+)'QQ48OC*S?P!02P,$%     @ >X!P5OCDV#8* P  L0<  !D
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
ME76@^XVDM-N-)>C^3@;? 5!+ P04    " ![@'!6OXIOA68"  "-!0  &0
M 'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6R5E-ENVS 017]EP!9% AC1XB5&
M:@NPG13M0PK#21KTD9;&%A$N*DE'R=^7I&3%11VC?9&XS!S>H71G4BO]9$I$
M"R^"2S,EI;755129O$1!S86J4+J=C=*"6C?5V\A4&FD1D@2/TC@>18(R2;))
M6%OJ;*)VEC.)2PUF)P35KW/DJIZ2A.P75FQ;6K\099.*;O$.[4.UU&X6=92"
M"92&*0D:-U,R2Z[F Q\? GXPK,W!&'PE:Z6>_.1;,26Q%X0<<^L)U+V><8&<
M>Y"3\:MEDNY(GW@XWM._A-I=+6MJ<*'X(RML.25C @5NZ([;E:J_8EO/T/-R
MQ4UX0MW$IB,"^<Y8)=IDIT PV;SI2WL/!PGC^)V$M$U(@^[FH*#RFEJ:3;2J
M0?MH1_.#4&K(=N*8]!_ESFJWRUR>S6:+Q>KAYAH>9ZO5[/O]3SB[IVN.YGP2
M68?W05'>HN8-*GT'E:1PJZ0M#=S( HL_ 9'3U8E+]^+FZ4GB->87T$]ZD,9I
M>H+7[XKM!U[_'XL]5F-#&!PG>(M<F8KF."7. P;U,Y+LTX=D%'\^H6_0Z1N<
MHF>/5&LJ[2NL&C3,_#_+[.LQH2=1QX6"NU 4:]3=I?ZUDL <MTQ*)K?.,;G>
M80'U7E:NC#7P$4;C7AS';X.E5L\LV-1UB;=P?'&MPR"D@UXR',/EL#=*QN!\
M;CDZ7UM0FP,VITP8.&N#S^&LC3_WO]-_R3GV):(#BPC4V] (C$/LI&W<TJUV
MO6;66.PMO&E4MU2[&S+ <>-2XXO+(0'=F+^96%4%PZV5=?8-P]+U2]0^P.UO
ME++[B3^@Z\#9;U!+ P04    " ![@'!6(Z:0+0 %   P#0  &0   'AL+W=O
M<FMS:&5E=',O<VAE970S-2YX;6RM5UEOVS@0_BL#MULX@!SKMN(F!A(GNQN@
M1Y"CW7VDI;$M5!)5DHJ3_?4[I XKK2,4BWVP15*<;XYO.!R=[KCX)K>("I[R
MK)!GHZU2Y7PZE?$6<R:/>8D%O5ESD3-%4[&9RE(@2XQ0GDU=VPZG.4N+T>+4
MK-V(Q2FO5)86>"- 5GG.Q/,%9GQW-G)&[<)MNMDJO3!=G)9L@W>H'LH;0;-I
MAY*D.18RY04(7)^-SIWYQ4SO-QN^I+B3O3%H3U:<?].3Z^1L9&N#,,-8:01&
MCT=<8I9I(#+C>X,YZE1JP?ZX1?_=^$Z^K)C$)<^^IHG:GHVB$22X9E6F;OGN
M3VS\"31>S#-I_F%7[_5)8UQ)Q?-&F.9Y6M1/]M3$H2<0V:\(N(V :^RN%1DK
M+YEBBU/!=R#T;D+3 ^.JD2;CTD*3<J<$O4U)3BVN/RT_?[R"^_._KNY@?,]6
M&<JCTZDB:+UA&C<P%S6,^PJ,X\)'7JBMA*LBP>0EP)1LZ@QS6\,NW$'$2XR/
MP7,L<&W7'<#S.D<]@^?]@J.'_*NE_</2^FC,9<EB/!M1[DL4CSA:O'OCA/;[
M =O\SC9_"'UQ7<0\1[AG3W#U1,=-XB$+AS'NMPA+GI>L>'[W)G*=V7L):8VK
M"!=K7!BOL,!UJHX@YG2RI,($^'H.E.*@".)O9*+F$(@!S%<H# LO)IH2_>?
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
MPD5[I!YCT<$"E0'B_8H0_CR0"]0]L?\;4$L#!!0    ( 'N <%;_T/;[U@(
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
M9VR#%OBB)TH:P_0)]\:__"2D?M?1LB2FL!OLV V,[":IJ)\H7V @BA&(2/'
M5T4*)HL%*7+.="@K05]A%(P<9X]1>&2[R#C KBPMB2DL_1U+W\ARFC_AG!/Z
M#.XJ;1T]OT7EU&^S:[?:IV8<2E=JEL04:L,=M:&1VD=98G-NA#9LX1AJ$NZH
M5I%Q-%W!61)3P 4[<('YTET^8<H3EN2/8)(OP8R2C,@E"4I?*J'V^@W:F'RO
M3;/=+'#<-D[C&+OBM"2FX!SM<(Z,.&7Z(;I8ERPC_"06EANQ3.1&EJ,6),^'
M;9:CUFW%#]K((^, N[*T)*:P/-VQ/#6R#!%;@TN4RAL+ Q,.KI)<;"<B,Z<Y
MXPDO9)YJB9ZV4$%9'_>)&OOOB"JR*19;$E.XNTZSQG7,Y$F6"5,RYV3Q"4P9
M*]!#BL']1AP+B;@_T=+VW*[ ;<$91_E25H_Y&E%]?M>]*<7""_S]V3BN660>
M>U?0MM14TJ_<A&LNOQD1U?<KXC70$&T2CM+D*UZ".5GQK6"JU)&0,/V"JNY(
M674Z@\#?A]QN-G!/6T7$/.S.D"VIJ9!A QD>G<YOZSP%DX*O"96@M31A*Q>K
M"M(N(L<WC<SC[$S5DII*M?%+KMDP"=\U!/'G(A&KKJDHT;ETN& FRK46J$VS
M$UI5BZRJQ;;4U&EIK)AK]F(SBE>84ED_RO)M*,MM;^5YN@2WZ:TB7:_#=J^Q
MK5Y5C(T+<\TV['MJADTW%5I5BZRJQ6[;6<*]@J=B;VR<:_9QAXL*^ ]$"<4+
M88W!/]<X>\#T7^TLV+1FH56UR*I:;$M-G:K&.+IFYZB]0N1B\<#5T;:"OJM9
M!&J:Z>ZD5AVC+3659.,97;-IK KU[>:@G3''=\YIFVJ15;78EIHZ$XWC=,V6
M<T:X+#DH39]%M4F+LOK,\:*@"4\.W$5/6PD[<#5/0C3MW('&OIM'V)GGCS"2
ML#&2T&PDZ\=R6G#FT*Y);54MLJH6VU)3)Z'QF-#L,;\CJ6M%Y08?G$+/V[>3
MFH:>-W++-SI*6IO'V)GHCS"4L#&4T&PHWV\)^(#S):%,+$ND)0=D!>8H%7=
MT]K$+-LYY6VJ15;58EMJZ@0UWA2:O6E(RK4CK9ZKW"5,K%!FF,ICZ%'[<J 6
M'+U^67(R#/;37=O*W\]UJW[2EIJ*LO&3T.PGU5Q_>:4'9NA9/A34HK3I%T.K
M:I%5M=B6FCHUC4>%W_*HG;/<U^2OWRKJVE;>?I9;M92VU%24C>^$9M^I?=9J
M+.56;:95M<BJ6FQ+39V9QF;";[R@M/:$O.[H6T_(-<UT3\C-P^X,V:H#[;_Z
MOBG#]+'\L(R!LG17GP?MCNX^7IN4GVSM';]TS\+J$[1&IOHB[AK1QR1G(,4K
M(>F<!.+ZI=5'9M4.)YOR*ZH'PCG)RLTU1DM,90/Q^XJ(96F](SO8?>HW_A]0
M2P,$%     @ >X!P5EI>DL!H @  J 8  !D   !X;"]W;W)K<VAE971S+W-H
M965T-# N>&ULK57;<ILP%/P5#>UTDIDF@+@XI)B9QDY:/R3-V$GZK,"QK8E
M5))-\O>5@%"G8#</?0%==E>[$CK$%1=/<@V@T'/."CFVUDJ5Y[8MTS7D1)[R
M$@H]L^0B)TIWQ<J6I0"2U:2<V=AQ0CLGM+"2N!Z[%4G,-XK1 FX%DIL\)^+E
M ABOQI9KO0[,Z6JMS("=Q"59P0+4?7DK=,_N5#*:0R$I+Y" Y=CZZIY/0H.O
M 0\4*KG31B;)(^=/IC/+QI9C# &#5!D%HE];F !C1DC;^-5J6MV2AKC;?E6_
MJK/K+(]$PH2SGS13Z[%U9J$,EF3#U)Q7WZ'-$QB]E#-9/U'58#ULH70C%<];
MLG:0TZ)YD^=V'W8(KK^'@%L"?B_!:PE>';1Q5L>:$D626/ *"8/6:J91[TW-
MUFEH84YQH82>I9JGDMG-P^7-W8_Y['*!CJ:@"&7R&)V@^\44'7T\CFVE%S%0
M.VT%+QI!O$=P"NDI\MS/"#L8#] G[Z>[;^FVCM;EPUT^7.MY_\XWE*4A^\-D
M<X/.94E2&%OZBD@06["23Q_<T/DRE.P_B;W)Z74YO4/JR14MJ/X*,O2-\TP.
M16WX8<TW=WN;>!&.',>)[>UNBC[.QY'GG/W!O3'H=P;]@P;GI$+71(&@A WZ
M:^C!SKIAY$91])>]/LP;C?QHC[N@<Q<<=#<KME H+E[0O#F:(8=!;^F3*.AO
M8!^VQUS8F0L/FKOCBK A0V'_J/PHZ._9 &[D>[AWI/9.'3$U_)J(%2TD8K#4
M3.=TI$.)IBXV'<7+NK0\<J4+5=U<ZU\)" /0\TO.U6O'5*ONYY3\!E!+ P04
M    " ![@'!64?<"OQ$"  #F!   &0   'AL+W=O<FMS:&5E=',O<VAE970T
M,2YX;6RME%UOFS 4AO^*Y4U3*W4Q'TD:98"TAD[KQ=HH6;MK!TZ"58.9[4#W
M[V<;@E(UG7*Q&_"QS_MP7G/LJ!7R614 &KV4O%(Q+K2NYX2HK("2JI&HH3(K
M6R%+JDTH=T35$FCN1"4G@>=-24E9A9/(S2UE$HF]YJR"I41J7Y94_KD!+MH8
M^_@PL6*[0ML)DD0UW<$:]&.]E"8B R5G)52*B0I)V,;XJS]?A#;?)3PQ:-71
M&%DG&R&>;7"7Q]BS!0&'3%L"-:\&%L"Y!9DR?O=,/'S2"H_'!_HWY]UXV5 %
M"\%_L5P7,9YAE,.6[KE>B?8[]'XFEI<)KMP3M5WN>(I1ME=:E+W85%"RJGO3
MEWX?C@3^^!U!T N"<P5A+W [1[K*G*V4:II$4K1(VFQ#LP.W-TYMW+#*_L6U
MEF:5&9U.GF[OTX<52F^7#^N[GVMTD8*FC"MT3Z6D=HLOT6?TN$[1Q<?+B&CS
M22LD68^_Z?#!._@4LA$*_2L4>$%P0KXX7^Z_EA-C=' ;#&X#QPO/<WO*3P<8
MGP;8,S57-<T@QN;0*) -X.33!W_J?3GE[C_!7GD-!Z_AO^A) U4NI&GI6BBF
MU2FO'6#J /:X-\EX?.U-S(]JCEV\30MFL\EL.J1U]9&C+K0WP \J=ZQ2B,/6
M"+W1]00CV9VJ+M"B=HVY$=JTN1L6YB(":1/,^E8(?0ALKP]76_(74$L#!!0
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
M0=H"\WXIA-YM;(/F7R3]!5!+ P04    " ![@'!65R.^PW4"  !,!@  &0
M 'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6RM5=%NFS 4_16+35,K=05,2&A&
MD&C2;9&Z*FK:[=F!F\2JP<PV2;NOGVTH2EO:]6$OP=<^YW".HWN)]US<R2V
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
M@9N=C9 5T2:4A:=J"21WH(IYH>^/O8I0CM/8Y98RC<56,\IA*9':5A61OZ;
M1)/@ !\2C[0HM4UX:5R3 E:@G^JE-)'7L^2T JZHX$C")L&WP60VM/6NX#N%
M1AVMD76R%N+9!E_S!/M6$##(M&4@YK6#&3!FB8R,GQTG[H^TP./U@?W.>3=>
MUD3!3+ ?--=E@C]BE,.&;)E^%,T7Z/R,+%\FF')/U+2UX2>,LJW2HNK 1D%%
M>?LF^^X>C@#!^ P@[ #A:\#P#"#J )$SVBISMN9$DS26HD'25ALVNW!WX]#&
M#>7V*ZZT-+O4X'1ZO[A=+5;H:@Z:4*90<(T^H*?5'%V]O8X];4ZP=5[6L4U;
MMO ,6Q"B!\%UJ=""YY"_)/",M%Y?>- W#2\RSB$;H"AXCT(_#$\(FOT[/+@@
M)^JO*W)\T<7K.G4Q+6YX&F=[<:)JDD&"3;,ID#O Z;LWP=C_?,K4?R)[87'8
M6QQ>8D^_U2")IKQ ]V#Z RWV9F(H..6Y)1H[(CLN=FDPNHF"4>SMCMW\M:S5
MZ1W]Q17(PC6W0IG8<MW^,'VVGQ^WKFU>Y:=FKK1CX ]-.Y0>B"PH5XC!QE#Z
M@YL11K)M]#;0HG:]LA;:=)Y;EF8V@K0%9G\CA#X$]H!^VJ:_ 5!+ P04
M" ![@'!6R4HZ WT"  #.!P  &0   'AL+W=O<FMS:&5E=',O<VAE970U,"YX
M;6RME6MOVC 4AO^*E4G3)FW$N0 5@TA .JU2JR'8UL\F.1"KB9W9!KI_/]L)
M&50AHE/Y0'Q[WISS@L\9'[AXDAF 0L]%SN3$R90J1ZXKDPP*(GN\!*9W-EP4
M1.FIV+JR%$!2"Q6YZV,\< M"F1.-[=I"1&.^4SEEL!!([HJ"B#\SR/EAXGC.
M<6%)MYDR"VXT+LD65J!^E@NA9VZCDM("F*2<(0&;B3/U1G'?G+<'?E$XR),Q
M,IFL.7\RD[MTXF 3$.20**- ]&,/<\AS(Z3#^%UK.LTK#7@Z/JI_M;GK7-9$
MPISGCS15V<2Y<5 *&[++U9(?OD&=CPTPX;FTW^A0G>T/')3LI.)%#>L("LJJ
M)WFN?3@!O$N 7P/^2R"\  0U$%P+A#406F>J5*P/,5$D&@M^0,*<UFIF8,VT
MM$Z?,O.SKY30NU1S*KJ_G:YN5^A##(K07"+_X]A56M?LNDFM,:LT_ L:GH\>
M.%.91+<LA?1<P-4!-5'YQZAF?J=B#$D/!=XGY&/?;PEH?CWNM>!Q-[Z"4N.X
M[>UGV02-QX'5"SH];O.UXL)VSMSXD2Q) A-'7VD)8@].]/Z=-\!?VCQY2['X
MC<3._ H;O\(N]>C17E9(/Y,]"%U[T!), :-LB^Y!WW'T T0Q0M]+O:N:5=EF
M</>+!CV,VYSLIH;M5-Q)_:=E_<:R?F=,,94)WS&%ED3!==9T"K[VOU>)W5@Q
MTVGV$>[A(3[[Z)NX/_7K=4QEBWM2Z0H06]LQ)+*Y5^6E66V:TM36XA?K,V\T
MKWK+/YFJTST0L:5,HAPV6A+WACI.476/:J)X:>OIFBM=G>TPTPT7A#F@]S><
MJ^/$O*!IX=%?4$L#!!0    ( 'N <%:$HS!F7 (  *D%   9    >&PO=V]R
M:W-H965T<R]S:&5E=#4Q+GAM;*U4VV[;, S]%4(;AA;8ZEN2%EEB()<.*Y!B
M0;-NSXK-Q$)ER9/DI/O[2;+CI44:[&$OEBCQ'/)0)D=[J9YT@6C@N>1"CTEA
M3#4, IT56%)])2L4]F8C54F--=4VT)5"FGM0R8,X# =!29D@Z<B?+54ZDK7A
M3.!2@:[+DJK?4^1R/R81.1P\L&UAW$&0CBJZQ16:QVJIK!5T+#DK46@F!2C<
MC,DD&LYZSM\[_&"XUT=[<$K64CXYXRX?D] EA!PSXQBH778X0\X=D4WC5\M)
MNI .>+P_L'_QVJV6-=4XD_PGRTTQ)C<$<MS0FIL'N?^*K9Z^X\LDU_X+^\;W
M.B:0U=K(L@7;#$HFFI4^MW4X D2#-P!Q"XA? WIO )(6D'BA369>UIP:FHZ4
MW(-RWI;-;7QM/-JJ8<*]XLHH>\LLSJ2+V\GJ=@47<S24<0W))7R"Q]4<+MY?
MC@)C(SB_(&O9I@U;_ 9;%,.]%*;0<"MRS%\2!#:U+K_XD-\T/LLXQ^P*DN@C
MQ&$<GTAH]N_PZ$PZ25>NQ/,E9\MUJC -KG<:YWIQJ"N:X9C89M.H=DC2#^^B
M0?CYE*C_1/9"8J^3V#O'GLZH+F!)60ZV3V!2REH8#7<BX[5]4KN![P7"/5)=
M*[3];.#;!A;61%@PNF:<&89Z>*I&3>"!#^S&RRZ-^OV!>YC=L?I3;E%X<].Y
M-;J"H[^^1+7UPT!#YA)N?K#NM)LW$]]FK\ZG=@XU8^,O33/$[JG:,J&!X\92
MAE?7?0*J&0R-863E>VLMC>U4ORWL+$7E'.S]1DIS,%R ;CJG?P!02P,$%
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
MDG5?,[7MPB19Q%PNZ%ZOP N8 I\58RIF>LT2)1GD+"$YHC#O:P/S*NC*\^K
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
M-M3,6HD+$WU5[B57OX;*3L[NK\_OKJYO/E]>W=V#JS^_?OKK._CEDDD:1@+
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
M >F"@3>>4J/:6\" :!B086#0(>._' 9$PX#T#0-B6#RPO)93#0/:#PRH8?7
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
MXB3FK$9<1RLV/3"Y,6CEIJ#Z%F>2J]U"X61R>3VYN3I'7T]_G,_0WA0D+HA
MUYASK/.[CP[0_6R*]M[OQ[94YVF4G;;<9PVWMX7;]= 5HS(7Z)QFD+TDL)70
M3JVW5GOF[62<0GJ(?/<C\AS/&Q T>3W<W2''[Y+G&S[_%<D;2D^#'@VC]?=Y
M(BJ<PMA2'Z  O@(K^?#.#9U/0];^$]D+HZ/.Z&@7>W*MRLE-!?J=H OTA0F!
M)NH5>595I,8\$T/F&\;0,.I:LDK<:!0=.XX3VZN^L8' P N]?N +T4$G.M@I
M>B:Q!/06Z0UOT%?D'_G!IO1@4[KG'X5;I8>=]/"O^5:U"#B'#$G\A+ 0( 4J
M:*I*M5"+*TR6N"F$1%5B3%,8<A)N./&/W4T?.]6\\=V*.J_1F[R^TF&T<04'
M@>][FQYWJOA7CW:OXI; %Z81"92R)95-\>U6NUYW:DJ\_3N\:917F"\**A"!
MN8(ZAY&Z+=XTGV8B667J]P.3JAN88:[Z-7 =H/;GC,GU1!_0_0-(?@%02P,$
M%     @ >X!P5M5#6ZNE @  _@D  !D   !X;"]W;W)K<VAE971S+W-H965T
M-S$N>&ULK59=;YLP%/TK%I.F39H"@7QV"5)+.ZT/3:(DW9Y=N FH8#/;">V_
MGVV(ET346JN\@&WN.;[G'OPQJ2A[YBF 0"]%3OC4284HKUR7QRD4F'=H"41^
MV5!68"&[;.ORD@%.-*C(7=_S!FZ!,^*$$SVV8.&$[D2>$5@PQ'=%@=GK#>2T
MFCI=YS"PS+:I4 -N."GQ%E8@'LL%DSW7L"19 81GE" &FZESW;V*QBI>!_S*
MH.)';:24/%'ZK#KWR=3Q5$*00RP4 Y:O/420YXI(IO&GX73,E IXW#ZP_]#:
MI98GS"&B^>\L$>G4&3DH@0W>Y6))JY_0Z.DKOICF7#]15<?V @?%.RYHT8!E
M!D5&ZC=^:>IP!) \[0"_ ?CG@,$;@* !!%IHG9F6=8L%#B>,5HBI:,FF&KHV
M&BW59$2YN!),?LTD3H31XVH]?[A;HF@^B^YFZ^7U^GX^0U]N0> LYVB&&<.J
MTE\GKI#S*90;-]PW-;?_!G> 'B@1*4=W)(&D!1_9\5W?0N!*H4:M?U![XUL9
M'S#KH*#[#?F>[[<E9(??0FS@74LZ@2E^H/EZ;Q6?DAB(4 66?_0RX\]H 4P-
MR0745N^:;J3IU/K<AUY')K(_EF"/.<FS9_+L6?.<$T"1_A>!M:5E1:M]Z(J7
M.(:I(S<:#FP/3OCY4W?@?6^SX$)D)T+[1FC_LH;T_\,0ZY0?%#0P@@960>N*
M6IVSHM_KW(7(3H0.C=#A99T;MCG7.[/..N<'%8V,HI'=NI2!?=E9\>\U[T)D
M)U+'1NKXLN99Z=ZK?-SR)_3\LQW3/3IBI1U;??/@**8[(NK3UHR:R\VU/M/=
M?^'US4@>0MN,<)3#1D*]SE!N$*R^;=0=04M]8#]1(;W7S51>T("I /E]0ZDX
M=-0$YLH7_@502P,$%     @ >X!P5MSI,W(X!0  WR   !D   !X;"]W;W)K
M<VAE971S+W-H965T-S(N>&ULM9IM3^LV%(#_BM5-T[W21F.'OL#:2I?"O=LD
M7D8'^S#M@TE<:I'$O;;;@K0?/R<I<6C#:7!3/I0F[3G'CQW;CS"#E9!/:L:8
M1L]QE*AA:Z;U_+3=5L&,Q50=B3E+S"=3(6.JS:5\;*NY9#3,@N*H33ROVXXI
M3UJC07;O1HX&8J$CGK ;B=0BCJE\.6.16 U;N/5ZXY8_SG1ZHST:S.DCFS!]
M-[^1YJI=9 EYS!+%18(DFPY;7_#IV.^F =DW[CE;J=)[E*(\"/&47OP>#EM>
MVB(6L4"G*:CYM61C%D5I)M..[^NDK:)F&EA^_YK]:P9O8!ZH8F,1_<U#/1NV
M^BT4LBE=1/I6K'YC:Z!.FB\0D<I>T2K_;H>T4+!06L3K8-."F"?Y;_J\[HA2
M@,E3'4#6 60SX/B= '\=X&>@><LRK'.JZ6@@Q0K)]-LF6_HFZYLLVM#P)!W&
MB9;F4V[B]&AR=S:Y^//NXNHO='%O7B?HTSG3E$<*75$I:=K)G]$OZ&YRCC[]
M^'G0UJ9H&MH.U@7.\@+DG0(878I$SQ2Z2$(6OHUOF\86+2:O+3XC8,(_:'*$
M?/PS(A[Q*]HSAL.OQ-*$>UDX 9KC%QWH9_F.W\DW-G32/(P+&B'-9%S50V"&
M=**>JCD-V+!E9J)B<LE:HY]^P%WOURH\N#G80R^,2@60'1=DQS#9C+,INGAF
MP2)]"M#U=,H#)M$_ERQ^8/)?]!^:+!X4^[Y@B4872_-:!0\6^2A\0\G>]$>G
MZ(\.V!^F)V3 %4-S:?JA"C6/[V7QZ?JY''E'_<Z@O2PC@$4<$;H%0A=$N)YG
M:Z<6:+Z0P<PL?U48>8Y."0-[Z<\&"%C*$:17@/1 D(D6P1,2.<Z21HO-I24G
MR9-T2R2]3M??'!&PE"-(OP#IUP=Y;_V 4U1/^1P-C'1$.RG03L!VW8O(;!\1
MUR]53'ELO_R0'?DG&R,#%G!L/O;LUNCMF/!S(QLL1"%?\I E(7KA+*I\T-:9
MRCB;TP4NY@I3VN<Q"'/+U1.:2L803\QSQI1&9G>OG/_K3&F#2PN9YW<VAP<N
MZ8I$+!(!D;Y):C:>T%"@*>4R7P?0W&Q1:D8E0V** A''9F*I=)95HI**);O7
MW>0$V^'*:0T#[Z\8.U) :P0<ZDIG+0/7T8QK,VQFM4@>734#KO)1SV@JV]L^
ML::!]U4-7,LUX#*N&-8V<!.Z@;=]HU.A&W M5Q8K'+@1X\#;RN'W^KBW"7,(
MY\!6.G #UK$C![BD',([L!4/O(]YX%KJ 9=P1"#6/4AC[D%VNP=<S!7&N@=I
MS#U(7?> 2[HB6?<@!W</4LL]X':X<EKW(/N[QXX4T$(!A[K26?<@==SC*T]H
M$G!#^.H>]90#3OY1Y6@JV]NNL,I!]E4.4DLYX#*N&%8Y2!/*0;:5@W2VE0.N
MY<IBE8,THAQD6SEP_\3;6C /H1S$*@=I0#EVY !7DD,H!['*0?91#E)+.> 2
MC@B^50Z_,>7P=RL'7,P5QBJ'WYAR^'65 R[IBF25PS^X<OBUE -NARMGZ4"E
M@1,5=^6 0UWIK'+XL'*<"2K#=*S.N33334B%QC,SG#%-:FH'7.##QTF'T [?
M:H</:\>X],0BKM0[>]PZ2WG#[E;\C0 NY@ICY<.'Y:,"!M%8+-X9Q^[6OMW!
M%4R-2DB[=%0<,_F8G: KLW"81N9GL,7=XI3^2W8VO7'_#)^.\[-VFR8_^K^D
M\I$G"D5L:E*:]<4,BLQ/T_,++>;9@?2#T%K$V=L9HR&3Z1?,YU,A].M%6J#X
MGX;1_U!+ P04    " ![@'!6*;TA7B,#  #L$0  #0   'AL+W-T>6QE<RYX
M;6S=6%U/VS 4_2N1&1-($VD;",UH*VV5D"9M$Q(\[ VYC=-:<NS,<5G+KY^O
MG:8?^"+&PU:6JL2^Q^?<8_L&1QW49B78[9PQ$RU+(>LAF1M3?8SC>CIG):W/
M5,6D10JE2VIL5\_BNM*,YC602A'W.ITT+BF79#20B_*Z-'4T50MIAN2\#47^
M]B4?DFYZ3B(O-U8Y&Y+[D_<_%\I<O8O\_>C#T5'G_O1J/W[B@%,2!T4O7B!Z
MUL%U+89)I[O2;OBQ%?+$8XQV&:#9+!LF=!PY;M9M-"B4W"Q?0GS JM.210]4
M#,F8"C[1'%@%+;E8^7 / E,EE(Z,W3>;K@N1^M'#7=^#+6UT2BZ5=KE]!O]W
MT@S? ]8],,B%: WVB ^,!A4UAFEY;3MNL L^@:*F?;>JK,.9IJMN[X)L".YF
MDTR4SIENTW3).C0:"%: '<UG<[@;5<4 &J-*V\@YG2E)G8<UHVE8V2D3XA;J
M_4>QH[TLMO:M [LFVZ8UU#2]C.^ _K::U]Z6?9UN5/$'93XO['2DZT.!LAO-
M"KYT_671&L#4N[@ZK2JQ^B3X3);,3_[%"4<#NN9%<Z7YH\T&I3*U :9)],"T
MX=/MR"]-JSNV-.MR6A:XY]X;]/QWUWG&)--4;)NVM7_(J_QJQ\GEO[+L_JOL
M&PYZ; ZQ0S=Y\19,IH=O,LD.WV/SPG%P)N/F:-PZ?W=.WS8:P5O.D'R'=R:Q
M21I-%EP8+IO>G.<YDT\.82MOZ,2^RN[HV_$Y*^A"F+L6'))-^QO+^:+,VE$W
ML!#-J$W[*TROF[:O6#87ESE;LGS<=/5LXIJ1;=BLS06$?>3:76$$XW@LC "&
MY<$<8!S/PO+\3_/IH_/Q&.:M'T3Z**>/<CPKA(S=!\L3YF3V"L\TRY(D3;$5
M'8^##L;8NJ4I?,-JF#=@8'D@TY^M-;[;>(4\7P?8GCY7(=A,\4K$9HJO-2#A
M=0-&EH5W&\L##&P7L-J!_.$\4%-A3I+ KF+>L"<81[(,0Z 6PS6:ILCJI/ )
M[P_VE"1)EH41P,(.D@1#X&G$$<P!>,"0)''GX-YY%*_/J7CS^\[H-U!+ P04
M    " ![@'!6EXJ[',     3 @  "P   %]R96QS+RYR96QSG9*Y;L,P#$!_
MQ=">, ?0(8@S9?$6!/D!5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+
MJ1C]$%)I6M6X 4BV)8]ISI%"KM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D
M5XA<UYVE/=LO3T%O@*\Z3'%":4A+,P[PS=)_,O?S##5%Y4HCE5L:>-/E_G;@
M2=&A(E@6FD7)TZ(=I7\=Q_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/
M['X 4$L#!!0    ( 'N <%9=_0@;/P4   <O   /    >&PO=V]R:V)O;VLN
M>&ULQ9I=;Z,X%$#_BI6GW9=-^,Q,U52BQ&TMI<!BDIWNRX@FSA0-@0IHNSN_
M?@UI9NS4O=J7VSPE0 0'Q[[G^MKG+W7S_;ZNOY-_=F75SD8/7?=X-AZWZP>Q
MR]L_ZD=1R2O;NMGEG3QLOHW;QT;DF_9!B&Y7CNW)Q!_O\J(:79P?[I4T8_6@
M[L2Z*^I*GNQ/K KQTOZZWA^2YZ(M[HNRZ/Z=C8;OI1B175$5N^*'V,Q&DQ%I
M'^J7F[HI?M15EY=\W=1E.1M9^PLKT73%^LUIWD-F^7T[G.GR^S27(+.1/Y$W
MW!9-VPV_&.Z?2\9G(7^\/WKJZJNB[$0SSSMQW=1/CT7UK;^-?(NQ\AI#.QP^
M]XUXUOR?9JRWVV(MYO7Z:2>J;M^.C2A[P*I]*![;$:GRG9B-POI9-/W[R >P
MS?[=.@FEM%1S5L@+#=L,>(@H<32G$:=S(K_Q>,'F028/+H-%$(64*) V &F?
M$/*KK4 Z *1S$DB>R8];&BF0+@#IGA!2:TD/@/1.">DHD#X Z>-"SBD/4Y9D
M+(Y(?$4NEYQ%E',%;@K 37'A^/+V-DCO>C#.KB-VQ<(@RD@0AO$RRI@"^0F
M_(0+R:(5C;(X951MM<\ T&=<((DSCU,RITG,6:9"61,H0D]PL9(T3FB:W9$@
MFA/ZYY(E,IQD*AWH#V2!L"@+HFMVN: DX)SJS08YPT*6QH(&7.M9%B0'"]L.
M0<*R8,'^[@-9?)7]%:14]K057<2);@<+TH.%[8=%O.S#[FVRS%AT33A-5TSF
M 3(09VD0JIB0("QD0_ ;V7PW\6).4SX,B>Q.18.T8"%[0;;=+<OZ$<J' =NW
MG&Q)&H5ZG+,@/5C(?GC].U\1@^N4TH%8Y8/,8"&K08HJ7<J10K\D?2*PQXRS
M&YJ2<)FF*B;D"PM9& =,.9A3Z5>U#]J0,6QD8[!(]D)*LN"+UN5LR!,V]D1C
MR3,)E?8#(J1]]^M3)Y4.G& @RX(O+[F,(Y*+T-712+ A;]C(W@ S.2UAMR%O
MV,C>@#'5E-V&O&$C>T-).<EO62X?WOZNLD'BL)'%84[SC)B0.FQD=;S)]XR$
MD#QL9'GL$S\C%B0+&UD68 :H%S$@=SC([C"D5J:F=""7./A%*V/Z\@JJ8D)2
M<9"E F8Q^C\.UJV0%7.<Q1C_;D@N#K)<U'3&" <IQ<&>BH#F<U5,R"X.LEU@
M3$_%A.SBG+)P]=57,2'%.,B*@3&G*B:D' =9.5JZ,Q==7I3:P'$AT;C(HCFJ
MMOT$)%'>-'FG8D*N<9%=\UY:]DJK8D*N<9%= V)JKG$AU[C(KC%DCZ9^":Z0
MH-OF/41B:9"0=5STB<R[D+8&"3G'178. -F/<143<HZ+[)S#?,'4$2')N!\T
MCS'W/L@K+K)7CLFT+N=!4O&0I7),YFADD$<\9(\<D[D:&:0.[T,62H[]6SP+
MC1"RAG?*Q1.MNN1!YO"P%T] 3'4JX(&KZ]C+Z] :C[X' +*'ASUC,14B##':
M@]SA8<]7 $@]8'N02CSL^0J$J4=OR"L>LE= 3"V4^Y!D_%.4R'Y%3Q43,HY_
MLBK9P*IB0OKQ\3=WO8^IA2,?<I#_054R<S%/VY0$.<A'=M#;8IXA9/J0?GST
MJ8M:S3/1@;NZT.<L!CH]DON0<'STY1<3GQ;"?<@T/OJF+A.?'KLAQ?CH)3$3
MW\^45]V^!REFBJP8\VJYJ>HTA10S15;,FV7S=V?X4T@QTT$QX^''[<7Y1FR+
M2FPB^8A6GE_GY3II2/^QWU3F>OVNC^U368;R7%PMZGQSV,=]V(-^\1]02P,$
M%     @ >X!P5JQM4%<\ @  KRH  !H   !X;"]?<F5L<R]W;W)K8F]O:RYX
M;6PN<F5L<\W:S6JC4!C&\5L)7D#->;]LAZ:KV71;>@.2GGS0)(K'H>W=3T@7
MR2.SF$WQ6<E1?/V#\$/4QY=\:,=]=RJ[?5\6G\?#J:RJW3CVO^JZK'?YV):[
MKL^G\Y%--QS;\;P<MG7?KM_;;:YEN8QZN)U1/3W>SER\?O7Y?R9VF\U^G7]W
MZS_'?!K_,;C^Z(;WLLMYK!:O[;#-XZJJ/P_7W:6^;-+=>7*U>'Y;5</S6ZKJ
MN8,$@F3^((4@G3_((,CF#W((\OF# H)B_J &@IKY@^XAZ'[^H <(>I@_*"U1
MQB5!T@1K JT3<IT(O$X(=B(0.R'9B<#LA&@G K43LIT(W$X(=R*0.R'=B<#N
MA'@G KT%]18"O07U%@*]9?*P3:"WH-Y"H+>@WD*@MZ#>0J"WH-Y"H+>@WD*@
MMZ#>0J"WH-Y"H+>BWDJ@MZ+>2J"WHMY*H+=.7I80Z*VHMQ+HK:BW$NBMJ+<2
MZ*VHMQ+HK:BW$NBMJ+<2Z&VHMQ'H;:BW$>AMJ+<1Z&VHMQ'H;9.7W01Z&^IM
M!'H;ZFT$>AOJ;01Z&^IM!'H;ZFT$>COJ[01Z.^KM!'H[ZNT$>COJ[01Z.^KM
M!'K[Y&,E@=Z.>CN!WHYZ.X'>CGH[@=Z.>CN!WH%Z!X'>@7H'@=Z!>@>!WH%Z
M!X'>@7H'@=Z!>@>!WC'YV81 [T"]@T#O0+V#0.] O8- [P;U;@CT;E#OAD#O
M!O5N?E+O,GX=<KGV?*_Q^C])]7@^-U\O?UE^[YS<EPO.]6U%>?H+4$L#!!0
M   ( 'N <%9 :Q>Z  (  ,8I   3    6T-O;G1E;G1?5'EP97-=+GAM;,W:
M34[#,! %X*M4V:+&]6\!43; %EAP 9-,VZA);-D&RNUQ4D "004J$F_3J+4]
M;^*1OE7/[IX]Q<FV:_NX*-8I^5/&8K6FSL;2>>KSRM*%SJ;\-:R8M]7&KHB)
MV<RPRO6)^C1-0XWB_.R2EO:A39.K;?XY-JY?%(':6$PN=AN'K$5AO6^;RJ:\
MSA[[^E/*]#6AS"?'/7'=^'B4-Q3LRX1AY?N UW,WCQ1"4]/DUH9T;;N\BVU;
M%M-S2['<7^*+'MURV514N^JART?*Z /9.JZ)4M>6NZ)'^Y-3OF':??*#\\<R
M^P+SSMO@?,P3"_3[N+>1#*>G/A>BD)K]K_B>F$L?_'XT3+NF^H?9^7J?7-B,
M\XAL?!Q^QQ]G_%[_EWT(D#XD2!\*I \-TH<!Z6,.TL<Q2!\G('WP&4HC**)R
M%%(YBJD<!56.HBI'896CN,I18.4HL@H4606*K )%5H$BJT"15:#(*E!D%2BR
M"A19!8JL$D56B2*K1)%5HL@J4625*+)*%%DEBJP215:)(JM"D56AR*I09%4H
MLBH4616*K I%5H4BJT*15:'(JE%DU2BR:A19-8JL&D56C2*K1I%5H\BJ4635
M*+(:%%D-BJP&15:#(JM!D=6@R&I09#4HLAH460V*K',46><HLL[_4]9[YS9_
M'#\^R\XV_5L^&_^^>?X"4$L! A0#%     @ >H!P5@=!36*!    L0   !
M             ( !     &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4    " !Z
M@'!6[;*)C.T    K @  $0              @ &O    9&]C4')O<',O8V]R
M92YX;6Q02P$"% ,4    " !Z@'!6F5R<(Q &  "<)P  $P
M@ '+ 0  >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0    ( 'J <%8J\^6I
M;0<  )LP   8              " @0P(  !X;"]W;W)K<VAE971S+W-H965T
M,2YX;6Q02P$"% ,4    " !Z@'!69WEC+B,'   /(0  &
M@(&O#P  >&PO=V]R:W-H965T<R]S:&5E=#(N>&UL4$L! A0#%     @ >H!P
M5B/IXI2? P  61$  !@              ("!"!<  'AL+W=O<FMS:&5E=',O
M<VAE970S+GAM;%!+ 0(4 Q0    ( 'J <%9P,11QE 4  +86   8
M      " @=T:  !X;"]W;W)K<VAE971S+W-H965T-"YX;6Q02P$"% ,4
M" !Z@'!6S)?V:IL%  "[(   &               @(&G(   >&PO=V]R:W-H
M965T<R]S:&5E=#4N>&UL4$L! A0#%     @ >H!P5L65XX&V!P  OB$  !@
M             ("!>"8  'AL+W=O<FMS:&5E=',O<VAE970V+GAM;%!+ 0(4
M Q0    ( 'J <%8Y"6 0R@4  %D,   8              " @60N  !X;"]W
M;W)K<VAE971S+W-H965T-RYX;6Q02P$"% ,4    " !Z@'!6NJ )WB0A  #I
M90  &               @(%D-   >&PO=V]R:W-H965T<R]S:&5E=#@N>&UL
M4$L! A0#%     @ >H!P5B (&U=1 @  . 4  !@              ("!OE4
M 'AL+W=O<FMS:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0    ( 'J <%:($S<V
M3 (  "T%   9              " @458  !X;"]W;W)K<VAE971S+W-H965T
M,3 N>&UL4$L! A0#%     @ >H!P5D89)VRN P  ^0<  !D
M ("!R%H  'AL+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q02P$"% ,4    " !Z
M@'!6&FA7V9<#  !Z"   &0              @(&M7@  >&PO=V]R:W-H965T
M<R]S:&5E=#$R+GAM;%!+ 0(4 Q0    ( 'J <%:SS80TU 4  &L.   9
M          " @7MB  !X;"]W;W)K<VAE971S+W-H965T,3,N>&UL4$L! A0#
M%     @ >H!P5EE.\Y__ @  _P8  !D              ("!AF@  'AL+W=O
M<FMS:&5E=',O<VAE970Q-"YX;6Q02P$"% ,4    " !Z@'!6RXB1C7\#  #T
M!P  &0              @(&\:P  >&PO=V]R:W-H965T<R]S:&5E=#$U+GAM
M;%!+ 0(4 Q0    ( 'J <%9^I7/.WPL  .\F   9              " @7)O
M  !X;"]W;W)K<VAE971S+W-H965T,38N>&UL4$L! A0#%     @ >X!P5F,9
M,'\N!0  X0L  !D              ("!B'L  'AL+W=O<FMS:&5E=',O<VAE
M970Q-RYX;6Q02P$"% ,4    " ![@'!6.-7%A>0#  !4"0  &0
M    @('M@   >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;%!+ 0(4 Q0    (
M 'N <%:,F%^SZ@(  (@&   9              " @0B%  !X;"]W;W)K<VAE
M971S+W-H965T,3DN>&UL4$L! A0#%     @ >X!P5GS\LP$W P  6 <  !D
M             ("!*8@  'AL+W=O<FMS:&5E=',O<VAE970R,"YX;6Q02P$"
M% ,4    " ![@'!6,*\4;8,*   3&P  &0              @(&7BP  >&PO
M=V]R:W-H965T<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    ( 'N <%;N:]5GMP(
M '0&   9              " @5&6  !X;"]W;W)K<VAE971S+W-H965T,C(N
M>&UL4$L! A0#%     @ >X!P5M!BW(#? P  >PP  !D              ("!
M/YD  'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6Q02P$"% ,4    " ![@'!6
M:<T/(F\B  !,;P  &0              @(%5G0  >&PO=V]R:W-H965T<R]S
M:&5E=#(T+GAM;%!+ 0(4 Q0    ( 'N <%;SLLR-+@0  .@*   9
M      " @?N_  !X;"]W;W)K<VAE971S+W-H965T,C4N>&UL4$L! A0#%
M  @ >X!P5CT8N595 @  +@4  !D              ("!8,0  'AL+W=O<FMS
M:&5E=',O<VAE970R-BYX;6Q02P$"% ,4    " ![@'!6$!$MX!0#  !Q!@
M&0              @('LQ@  >&PO=V]R:W-H965T<R]S:&5E=#(W+GAM;%!+
M 0(4 Q0    ( 'N <%;XY-@V"@,  +$'   9              " @3?*  !X
M;"]W;W)K<VAE971S+W-H965T,C@N>&UL4$L! A0#%     @ >X!P5N05\A(*
M!   ;PL  !D              ("!>,T  'AL+W=O<FMS:&5E=',O<VAE970R
M.2YX;6Q02P$"% ,4    " ![@'!6514<TW0"  "N!0  &0
M@(&YT0  >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+ 0(4 Q0    ( 'N
M<%8 VV33@P0  $4-   9              " @634  !X;"]W;W)K<VAE971S
M+W-H965T,S$N>&UL4$L! A0#%     @ >X!P5C+RPY%$ @  *P4  !D
M         ("!'MD  'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6Q02P$"% ,4
M    " ![@'!6\#?L/?<"  !:!@  &0              @(&9VP  >&PO=V]R
M:W-H965T<R]S:&5E=#,S+GAM;%!+ 0(4 Q0    ( 'N <%:_BF^%9@(  (T%
M   9              " @<?>  !X;"]W;W)K<VAE971S+W-H965T,S0N>&UL
M4$L! A0#%     @ >X!P5B.FD"T !0  , T  !D              ("!9.$
M 'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6Q02P$"% ,4    " ![@'!6"74
M$#T#   ?"P  &0              @(&;Y@  >&PO=V]R:W-H965T<R]S:&5E
M=#,V+GAM;%!+ 0(4 Q0    ( 'N <%;_T/;[U@(  $\(   9
M  " @0_J  !X;"]W;W)K<VAE971S+W-H965T,S<N>&UL4$L! A0#%     @
M>X!P5F):PJGG P  91$  !D              ("!'.T  'AL+W=O<FMS:&5E
M=',O<VAE970S."YX;6Q02P$"% ,4    " ![@'!6.[F=#F@&  #V)P  &0
M            @($Z\0  >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM;%!+ 0(4
M Q0    ( 'N <%9:7I+ : (  *@&   9              " @=GW  !X;"]W
M;W)K<VAE971S+W-H965T-# N>&UL4$L! A0#%     @ >X!P5E'W K\1 @
MY@0  !D              ("!>/H  'AL+W=O<FMS:&5E=',O<VAE970T,2YX
M;6Q02P$"% ,4    " ![@'!6]N((S7X#  #W"@  &0              @('
M_   >&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4 Q0    ( 'N <%8G
MET)S?@(  %$&   9              " @74  0!X;"]W;W)K<VAE971S+W-H
M965T-#,N>&UL4$L! A0#%     @ >X!P5E<COL-U @  3 8  !D
M     ("!*@,! 'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6Q02P$"% ,4
M" ![@'!6L#[(LC@"  "+!0  &0              @('6!0$ >&PO=V]R:W-H
M965T<R]S:&5E=#0U+GAM;%!+ 0(4 Q0    ( 'N <%;%':2T30(  ,,&   9
M              " @44( 0!X;"]W;W)K<VAE971S+W-H965T-#8N>&UL4$L!
M A0#%     @ >X!P5BMIE2M( @  D@4  !D              ("!R0H! 'AL
M+W=O<FMS:&5E=',O<VAE970T-RYX;6Q02P$"% ,4    " ![@'!6.I&3MIP"
M  #9!P  &0              @(%(#0$ >&PO=V]R:W-H965T<R]S:&5E=#0X
M+GAM;%!+ 0(4 Q0    ( 'N <%8&)2!7. (  'D%   9              "
M@1L0 0!X;"]W;W)K<VAE971S+W-H965T-#DN>&UL4$L! A0#%     @ >X!P
M5LE*.@-] @  S@<  !D              ("!BA(! 'AL+W=O<FMS:&5E=',O
M<VAE970U,"YX;6Q02P$"% ,4    " ![@'!6A*,P9EP"  "I!0  &0
M        @($^%0$ >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;%!+ 0(4 Q0
M   ( 'N <%;LXV2^+P,  +0,   9              " @=$7 0!X;"]W;W)K
M<VAE971S+W-H965T-3(N>&UL4$L! A0#%     @ >X!P5C9@/K#] @  !PH
M !D              ("!-QL! 'AL+W=O<FMS:&5E=',O<VAE970U,RYX;6Q0
M2P$"% ,4    " ![@'!6;*/.57D"  "/!@  &0              @(%K'@$
M>&PO=V]R:W-H965T<R]S:&5E=#4T+GAM;%!+ 0(4 Q0    ( 'N <%91R$BC
M=P(  -X%   9              " @1LA 0!X;"]W;W)K<VAE971S+W-H965T
M-34N>&UL4$L! A0#%     @ >X!P5J8&Z83^ @  >@H  !D
M ("!R2,! 'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6Q02P$"% ,4    " ![
M@'!6PAVR;F #  #;"P  &0              @('^)@$ >&PO=V]R:W-H965T
M<R]S:&5E=#4W+GAM;%!+ 0(4 Q0    ( 'N <%8&*T\(#P4  /4@   9
M          " @94J 0!X;"]W;W)K<VAE971S+W-H965T-3@N>&UL4$L! A0#
M%     @ >X!P5O*$W,Z( P  &0T  !D              ("!VR\! 'AL+W=O
M<FMS:&5E=',O<VAE970U.2YX;6Q02P$"% ,4    " ![@'!64A5BG5D%   I
M)   &0              @(&:,P$ >&PO=V]R:W-H965T<R]S:&5E=#8P+GAM
M;%!+ 0(4 Q0    ( 'N <%:=JNST+@T   6&   9              " @2HY
M 0!X;"]W;W)K<VAE971S+W-H965T-C$N>&UL4$L! A0#%     @ >X!P5I96
M[B8F @  > 4  !D              ("!CT8! 'AL+W=O<FMS:&5E=',O<VAE
M970V,BYX;6Q02P$"% ,4    " ![@'!6Y=4R&/0$   O(P  &0
M    @('L2 $ >&PO=V]R:W-H965T<R]S:&5E=#8S+GAM;%!+ 0(4 Q0    (
M 'N <%9;J^9/ 0,  . (   9              " @1=. 0!X;"]W;W)K<VAE
M971S+W-H965T-C0N>&UL4$L! A0#%     @ >X!P5GD<*R^J @  F <  !D
M             ("!3U$! 'AL+W=O<FMS:&5E=',O<VAE970V-2YX;6Q02P$"
M% ,4    " ![@'!6K[A[<P(#   ="P  &0              @($P5 $ >&PO
M=V]R:W-H965T<R]S:&5E=#8V+GAM;%!+ 0(4 Q0    ( 'N <%9'J!Y O (
M (H'   9              " @6E7 0!X;"]W;W)K<VAE971S+W-H965T-C<N
M>&UL4$L! A0#%     @ >X!P5K9#ZO+. P  60P  !D              ("!
M7%H! 'AL+W=O<FMS:&5E=',O<VAE970V."YX;6Q02P$"% ,4    " ![@'!6
M@U>4!](#  !\#@  &0              @(%A7@$ >&PO=V]R:W-H965T<R]S
M:&5E=#8Y+GAM;%!+ 0(4 Q0    ( 'N <%;$+8FPN (   T(   9
M      " @6IB 0!X;"]W;W)K<VAE971S+W-H965T-S N>&UL4$L! A0#%
M  @ >X!P5M5#6ZNE @  _@D  !D              ("!664! 'AL+W=O<FMS
M:&5E=',O<VAE970W,2YX;6Q02P$"% ,4    " ![@'!6W.DS<C@%  #?(
M&0              @($U: $ >&PO=V]R:W-H965T<R]S:&5E=#<R+GAM;%!+
M 0(4 Q0    ( 'N <%8IO2%>(P,  .P1   -              "  :1M 0!X
M;"]S='EL97,N>&UL4$L! A0#%     @ >X!P5I>*NQS     $P(   L
M         ( !\G ! %]R96QS+RYR96QS4$L! A0#%     @ >X!P5EW]"!L_
M!0  !R\   \              ( !VW$! 'AL+W=O<FMB;V]K+GAM;%!+ 0(4
M Q0    ( 'N <%:L;5!7/ (  *\J   :              "  4=W 0!X;"]?
M<F5L<R]W;W)K8F]O:RYX;6PN<F5L<U!+ 0(4 Q0    ( 'N <%9 :Q>Z  (
M ,8I   3              "  ;MY 0!;0V]N=&5N=%]4>7!E<UTN>&UL4$L%
3!@    !0 %  YQ4  .Q[ 0    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<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>95
<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>96
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.4</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>135</ContextCount>
  <ElementCount>375</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>59</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>5</UnitCount>
  <MyReports>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedBalanceSheets</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedStatementsOfOperations</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>000007 - Disclosure - DESCRIPTION OF BUSINESS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/DescriptionOfBusiness</Role>
      <ShortName>DESCRIPTION OF BUSINESS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPolicies</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>000009 - Disclosure - INVENTORIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/INVENTORIES</Role>
      <ShortName>INVENTORIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>000010 - Disclosure - VENDOR DEPOSITS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/VendorDeposits</Role>
      <ShortName>VENDOR DEPOSITS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>000011 - Disclosure - PROPERTY AND EQUIPMENT</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipment</Role>
      <ShortName>PROPERTY AND EQUIPMENT</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>000012 - Disclosure - INTANGIBLE ASSETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssets</Role>
      <ShortName>INTANGIBLE ASSETS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>000013 - Disclosure - LEASES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LEASES</Role>
      <ShortName>LEASES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts</Role>
      <ShortName>CAPITALIZED SOFTWARE DEVELOPMENT COSTS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CloudComputingServiceContract</Role>
      <ShortName>CLOUD COMPUTING SERVICE CONTRACT</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>000016 - Disclosure - SHAREHOLDERS EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquity</Role>
      <ShortName>SHAREHOLDERS EQUITY</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>000017 - Disclosure - COMMITMENTS AND CONTINGENCIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CommitmentsAndContingencies</Role>
      <ShortName>COMMITMENTS AND CONTINGENCIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>000018 - Disclosure - CONTRACTS AND AGREEMENTS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ContractsAndAgreements</Role>
      <ShortName>CONTRACTS AND AGREEMENTS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities</Role>
      <ShortName>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>000020 - Disclosure - ACCRUED WARRANTY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedWarranty</Role>
      <ShortName>ACCRUED WARRANTY</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>000021 - Disclosure - INCOME TAXES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxes</Role>
      <ShortName>INCOME TAXES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>000022 - Disclosure - CUSTOMER CONCENTRATION</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CustomerConcentration</Role>
      <ShortName>CUSTOMER CONCENTRATION</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>000023 - Disclosure - SUBSEQUENT EVENTS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SubsequentEvents</Role>
      <ShortName>SUBSEQUENT EVENTS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>000024 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>000026 - Disclosure - INVENTORIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/InventoriesTables</Role>
      <ShortName>INVENTORIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/INVENTORIES</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>000027 - Disclosure - PROPERTY AND EQUIPMENT (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipmentTables</Role>
      <ShortName>PROPERTY AND EQUIPMENT (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/PropertyAndEquipment</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>000028 - Disclosure - INTANGIBLE ASSETS (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsTables</Role>
      <ShortName>INTANGIBLE ASSETS (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssets</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>000029 - Disclosure - LEASES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesTables</Role>
      <ShortName>LEASES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/LEASES</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>000030 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables</Role>
      <ShortName>CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>000031 - Disclosure - SHAREHOLDERS EQUITY (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityTables</Role>
      <ShortName>SHAREHOLDERS EQUITY (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquity</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>000032 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ContractsAndAgreementsTables</Role>
      <ShortName>CONTRACTS AND AGREEMENTS (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/ContractsAndAgreements</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>000033 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables</Role>
      <ShortName>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>000034 - Disclosure - ACCRUED WARRANTY (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedWarrantyTables</Role>
      <ShortName>ACCRUED WARRANTY (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedWarranty</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>000035 - Disclosure - INCOME TAXES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesTables</Role>
      <ShortName>INCOME TAXES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxes</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>000036 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>000040 - Disclosure - INVENTORIES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/InventoriesDetails</Role>
      <ShortName>INVENTORIES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/InventoriesTables</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>000041 - Disclosure - VENDOR DEPOSITS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/VendorDepositsDetailsNarrative</Role>
      <ShortName>VENDOR DEPOSITS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/VendorDeposits</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>000042 - Disclosure - PROPERTY AND EQUIPMENT (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipmentDetails</Role>
      <ShortName>PROPERTY AND EQUIPMENT (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/PropertyAndEquipmentTables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>000043 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipmentDetailsNarrative</Role>
      <ShortName>PROPERTY AND EQUIPMENT (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/PropertyAndEquipmentTables</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>000044 - Disclosure - INTANGIBLE ASSETS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetails</Role>
      <ShortName>INTANGIBLE ASSETS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>000045 - Disclosure - INTANGIBLE ASSETS (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetails1</Role>
      <ShortName>INTANGIBLE ASSETS (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>000046 - Disclosure - INTANGIBLE ASSETS (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetails2</Role>
      <ShortName>INTANGIBLE ASSETS (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>000047 - Disclosure - INTANGIBLE ASSETS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetailsNarrative</Role>
      <ShortName>INTANGIBLE ASSETS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>000048 - Disclosure - LEASES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails</Role>
      <ShortName>LEASES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>000049 - Disclosure - LEASES (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails1</Role>
      <ShortName>LEASES (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>000050 - Disclosure - LEASES (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails2</Role>
      <ShortName>LEASES (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>000051 - Disclosure - LEASES (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails3</Role>
      <ShortName>LEASES (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>000052 - Disclosure - LEASES (Details 4)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails4</Role>
      <ShortName>LEASES (Details 4)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>000053 - Disclosure - LEASES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetailsNarrative</Role>
      <ShortName>LEASES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>000054 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails</Role>
      <ShortName>CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative</Role>
      <ShortName>CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>000056 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CloudComputingServiceContractDetailsNarrative</Role>
      <ShortName>CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CloudComputingServiceContract</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>000057 - Disclosure - SHAREHOLDERS EQUITY (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>000058 - Disclosure - SHAREHOLDERS EQUITY (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails1</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>000059 - Disclosure - SHAREHOLDERS EQUITY (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails2</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>000060 - Disclosure - SHAREHOLDERS EQUITY (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails3</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>60</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>000061 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetailsNarrative</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>000062 - Disclosure - CONTRACTS AND AGREEMENTS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ContractsAndAgreementsDetails</Role>
      <ShortName>CONTRACTS AND AGREEMENTS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ContractsAndAgreementsTables</ParentRole>
      <Position>62</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>000063 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ContractsAndAgreementsDetailsNarrative</Role>
      <ShortName>CONTRACTS AND AGREEMENTS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ContractsAndAgreementsTables</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>000064 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails</Role>
      <ShortName>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables</ParentRole>
      <Position>64</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>000065 - Disclosure - ACCRUED WARRANTY (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedWarrantyDetails</Role>
      <ShortName>ACCRUED WARRANTY (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedWarrantyTables</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>000066 - Disclosure - INCOME TAXES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesDetails</Role>
      <ShortName>INCOME TAXES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxesTables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>000067 - Disclosure - INCOME TAXES (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesDetails1</Role>
      <ShortName>INCOME TAXES (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxesTables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>000068 - Disclosure - INCOME TAXES (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesDetails2</Role>
      <ShortName>INCOME TAXES (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxesTables</ParentRole>
      <Position>68</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>000069 - Disclosure - INCOME TAXES (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesDetails3</Role>
      <ShortName>INCOME TAXES (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxesTables</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>000070 - Disclosure - INCOME TAXES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesDetailsNarrative</Role>
      <ShortName>INCOME TAXES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxesTables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>000071 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CustomerConcentrationDetailsNarrative</Role>
      <ShortName>CUSTOMER CONCENTRATION (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CustomerConcentration</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>000072 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SubsequentEventsDetailsNarrative</Role>
      <ShortName>SUBSEQUENT EVENTS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SubsequentEvents</ParentRole>
      <Position>72</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 35 fact(s) appearing in ix:hidden were eligible for transformation: dei:CurrentFiscalYearEndDate, tomz:AmortizationOfTenantImprovementAllowance, tomz:ExercisePriceOfWarrant, tomz:PreferredStockParOrStatedValue, tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod, tomz:TermOfAgreement, tomz:WeightedAverageExercisePriceExercised, tomz:WeightedAverageExercisePriceExpired, us-gaap:AllowanceForDoubtfulAccountsReceivable, us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight, us-gaap:ClassOfWarrantOrRightOutstanding, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesOutstanding, us-gaap:CommonStockValue, us-gaap:ConcentrationRiskPercentage1, us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves, us-gaap:PreferredStockSharesAuthorized, us-gaap:PreferredStockSharesIssued, us-gaap:PreferredStockSharesOutstanding, us-gaap:SalariesAndWages, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod, us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice -  tomz_10k.htm 1</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-K" original="tomz_10k.htm">tomz_10k.htm</File>
    <File>tomz-20221231.xsd</File>
    <File>tomz-20221231_cal.xml</File>
    <File>tomz-20221231_def.xml</File>
    <File>tomz-20221231_lab.xml</File>
    <File>tomz-20221231_pre.xml</File>
    <File>tomz_ex211.htm</File>
    <File>tomz_ex311.htm</File>
    <File>tomz_ex312.htm</File>
    <File>tomz_ex321.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>tomz_10kimg1.jpg</File>
    <File>tomz_10kimg2.jpg</File>
    <File>tomz_10kimg3.jpg</File>
    <File>tomz_10kimg4.jpg</File>
    <File>tomz_10kimg5.jpg</File>
    <File>tomz_10kimg6.jpg</File>
    <File>tomz_10kimg7.jpg</File>
    <File>tomz_10kimg8.jpg</File>
    <File>tomz_10kimg9.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="608">http://fasb.org/us-gaap/2022</BaseTaxonomy>
    <BaseTaxonomy items="37">http://xbrl.sec.gov/dei/2022</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>99
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "tomz_10k.htm": {
   "axisCustom": 0,
   "axisStandard": 17,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2022": 608,
    "http://xbrl.sec.gov/dei/2022": 37
   },
   "contextCount": 135,
   "dts": {
    "calculationLink": {
     "local": [
      "tomz-20221231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tomz-20221231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "tomz_10k.htm"
     ]
    },
    "labelLink": {
     "local": [
      "tomz-20221231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tomz-20221231_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "tomz-20221231.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/dtr/type/nonNumeric-2009-12-16.xsd",
      "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-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/dtr/type/2020-01-21/types.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd",
      "https://xbrl.sec.gov/country/2022/country-2022.xsd",
      "https://xbrl.sec.gov/currency/2022/currency-2022.xsd",
      "https://xbrl.sec.gov/dei/2022/dei-2022.xsd",
      "https://xbrl.sec.gov/exch/2022/exch-2022.xsd",
      "https://xbrl.sec.gov/naics/2022/naics-2022.xsd",
      "https://xbrl.sec.gov/sic/2022/sic-2022.xsd",
      "https://xbrl.sec.gov/stpr/2022/stpr-2022.xsd"
     ]
    }
   },
   "elementCount": 520,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2022": 23,
    "http://tomz.com/20221231": 11,
    "http://xbrl.sec.gov/dei/2022": 5,
    "total": 39
   },
   "keyCustom": 84,
   "keyStandard": 291,
   "memberCustom": 42,
   "memberStandard": 17,
   "nsprefix": "tomz",
   "nsuri": "http://tomz.com/20221231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "strong",
       "span",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:EntityRegistrantName",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "000001 - Document - Cover",
     "menuCat": "Cover",
     "order": "1",
     "role": "http://tomz.com/role/Cover",
     "shortName": "Cover",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "strong",
       "span",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:EntityRegistrantName",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:VendorDepositsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000010 - Disclosure - VENDOR DEPOSITS",
     "menuCat": "Notes",
     "order": "10",
     "role": "http://tomz.com/role/VendorDeposits",
     "shortName": "VENDOR DEPOSITS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:VendorDepositsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000011 - Disclosure - PROPERTY AND EQUIPMENT",
     "menuCat": "Notes",
     "order": "11",
     "role": "http://tomz.com/role/PropertyAndEquipment",
     "shortName": "PROPERTY AND EQUIPMENT",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000012 - Disclosure - INTANGIBLE ASSETS",
     "menuCat": "Notes",
     "order": "12",
     "role": "http://tomz.com/role/IntangibleAssets",
     "shortName": "INTANGIBLE ASSETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000013 - Disclosure - LEASES",
     "menuCat": "Notes",
     "order": "13",
     "role": "http://tomz.com/role/LEASES",
     "shortName": "LEASES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS",
     "menuCat": "Notes",
     "order": "14",
     "role": "http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts",
     "shortName": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:CloudComputingServiceContractDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT",
     "menuCat": "Notes",
     "order": "15",
     "role": "http://tomz.com/role/CloudComputingServiceContract",
     "shortName": "CLOUD COMPUTING SERVICE CONTRACT",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:CloudComputingServiceContractDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000016 - Disclosure - SHAREHOLDERS EQUITY",
     "menuCat": "Notes",
     "order": "16",
     "role": "http://tomz.com/role/ShareholdersEquity",
     "shortName": "SHAREHOLDERS EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000017 - Disclosure - COMMITMENTS AND CONTINGENCIES",
     "menuCat": "Notes",
     "order": "17",
     "role": "http://tomz.com/role/CommitmentsAndContingencies",
     "shortName": "COMMITMENTS AND CONTINGENCIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:ContractsAndAgreementsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000018 - Disclosure - CONTRACTS AND AGREEMENTS",
     "menuCat": "Notes",
     "order": "18",
     "role": "http://tomz.com/role/ContractsAndAgreements",
     "shortName": "CONTRACTS AND AGREEMENTS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:ContractsAndAgreementsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
     "menuCat": "Notes",
     "order": "19",
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS",
     "menuCat": "Statements",
     "order": "2",
     "role": "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GuaranteesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000020 - Disclosure - ACCRUED WARRANTY",
     "menuCat": "Notes",
     "order": "20",
     "role": "http://tomz.com/role/AccruedWarranty",
     "shortName": "ACCRUED WARRANTY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GuaranteesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000021 - Disclosure - INCOME TAXES",
     "menuCat": "Notes",
     "order": "21",
     "role": "http://tomz.com/role/IncomeTaxes",
     "shortName": "INCOME TAXES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000022 - Disclosure - CUSTOMER CONCENTRATION",
     "menuCat": "Notes",
     "order": "22",
     "role": "http://tomz.com/role/CustomerConcentration",
     "shortName": "CUSTOMER CONCENTRATION",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000023 - Disclosure - SUBSEQUENT EVENTS",
     "menuCat": "Notes",
     "order": "23",
     "role": "http://tomz.com/role/SubsequentEvents",
     "shortName": "SUBSEQUENT EVENTS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000024 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "menuCat": "Policies",
     "order": "24",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "menuCat": "Tables",
     "order": "25",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000026 - Disclosure - INVENTORIES (Tables)",
     "menuCat": "Tables",
     "order": "26",
     "role": "http://tomz.com/role/InventoriesTables",
     "shortName": "INVENTORIES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000027 - Disclosure - PROPERTY AND EQUIPMENT (Tables)",
     "menuCat": "Tables",
     "order": "27",
     "role": "http://tomz.com/role/PropertyAndEquipmentTables",
     "shortName": "PROPERTY AND EQUIPMENT (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000028 - Disclosure - INTANGIBLE ASSETS (Tables)",
     "menuCat": "Tables",
     "order": "28",
     "role": "http://tomz.com/role/IntangibleAssetsTables",
     "shortName": "INTANGIBLE ASSETS (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000029 - Disclosure - LEASES (Tables)",
     "menuCat": "Tables",
     "order": "29",
     "role": "http://tomz.com/role/LeasesTables",
     "shortName": "LEASES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "menuCat": "Statements",
     "order": "3",
     "role": "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000030 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)",
     "menuCat": "Tables",
     "order": "30",
     "role": "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables",
     "shortName": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000031 - Disclosure - SHAREHOLDERS EQUITY (Tables)",
     "menuCat": "Tables",
     "order": "31",
     "role": "http://tomz.com/role/ShareholdersEquityTables",
     "shortName": "SHAREHOLDERS EQUITY (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000032 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)",
     "menuCat": "Tables",
     "order": "32",
     "role": "http://tomz.com/role/ContractsAndAgreementsTables",
     "shortName": "CONTRACTS AND AGREEMENTS (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000033 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
     "menuCat": "Tables",
     "order": "33",
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000034 - Disclosure - ACCRUED WARRANTY (Tables)",
     "menuCat": "Tables",
     "order": "34",
     "role": "http://tomz.com/role/AccruedWarrantyTables",
     "shortName": "ACCRUED WARRANTY (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000035 - Disclosure - INCOME TAXES (Tables)",
     "menuCat": "Tables",
     "order": "35",
     "role": "http://tomz.com/role/IncomeTaxesTables",
     "shortName": "INCOME TAXES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000036 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
     "menuCat": "Details",
     "order": "36",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "tomz:NetLossAttributableToCommonShareholders",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
     "menuCat": "Details",
     "order": "37",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "tomz:WeightedAverageNumberOfDilutedShareOutstanding1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
     "menuCat": "Details",
     "order": "38",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "us-gaap:RevenueRecognitionPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "tomz:ChangesInRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ReceivablesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
     "menuCat": "Details",
     "order": "39",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ReceivablesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS",
     "menuCat": "Statements",
     "order": "4",
     "role": "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:CostOfRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryFinishedGoods",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000040 - Disclosure - INVENTORIES (Details)",
     "menuCat": "Details",
     "order": "40",
     "role": "http://tomz.com/role/InventoriesDetails",
     "shortName": "INVENTORIES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryFinishedGoods",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "tomz:VendorDepositsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Deposits",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000041 - Disclosure - VENDOR DEPOSITS (Details Narrative)",
     "menuCat": "Details",
     "order": "41",
     "role": "http://tomz.com/role/VendorDepositsDetailsNarrative",
     "shortName": "VENDOR DEPOSITS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "tomz:VendorDepositsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Deposits",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FurnitureAndFixturesGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000042 - Disclosure - PROPERTY AND EQUIPMENT (Details)",
     "menuCat": "Details",
     "order": "42",
     "role": "http://tomz.com/role/PropertyAndEquipmentDetails",
     "shortName": "PROPERTY AND EQUIPMENT (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FurnitureAndFixturesGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000043 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)",
     "menuCat": "Details",
     "order": "43",
     "role": "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative",
     "shortName": "PROPERTY AND EQUIPMENT (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000044 - Disclosure - INTANGIBLE ASSETS (Details)",
     "menuCat": "Details",
     "order": "44",
     "role": "http://tomz.com/role/IntangibleAssetsDetails",
     "shortName": "INTANGIBLE ASSETS (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IndefiniteLivedTrademarks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000045 - Disclosure - INTANGIBLE ASSETS (Details 1)",
     "menuCat": "Details",
     "order": "45",
     "role": "http://tomz.com/role/IntangibleAssetsDetails1",
     "shortName": "INTANGIBLE ASSETS (Details 1)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IndefiniteLivedTrademarks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000046 - Disclosure - INTANGIBLE ASSETS (Details 2)",
     "menuCat": "Details",
     "order": "46",
     "role": "http://tomz.com/role/IntangibleAssetsDetails2",
     "shortName": "INTANGIBLE ASSETS (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000047 - Disclosure - INTANGIBLE ASSETS (Details Narrative)",
     "menuCat": "Details",
     "order": "47",
     "role": "http://tomz.com/role/IntangibleAssetsDetailsNarrative",
     "shortName": "INTANGIBLE ASSETS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000048 - Disclosure - LEASES (Details)",
     "menuCat": "Details",
     "order": "48",
     "role": "http://tomz.com/role/LeasesDetails",
     "shortName": "LEASES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:OperatingLeaseLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:OperatingLeaseLiabilityTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000049 - Disclosure - LEASES (Details 1)",
     "menuCat": "Details",
     "order": "49",
     "role": "http://tomz.com/role/LeasesDetails1",
     "shortName": "LEASES (Details 1)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:OperatingLeaseLiabilityTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-12-31_tomz_SeriesAPreferredStocksMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
     "menuCat": "Statements",
     "order": "5",
     "role": "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-12-31_tomz_SeriesAPreferredStocksMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:LeaseOtherInformationTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000050 - Disclosure - LEASES (Details 2)",
     "menuCat": "Details",
     "order": "50",
     "role": "http://tomz.com/role/LeasesDetails2",
     "shortName": "LEASES (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:LeaseOtherInformationTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000051 - Disclosure - LEASES (Details 3)",
     "menuCat": "Details",
     "order": "51",
     "role": "http://tomz.com/role/LeasesDetails3",
     "shortName": "LEASES (Details 3)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000052 - Disclosure - LEASES (Details 4)",
     "menuCat": "Details",
     "order": "52",
     "role": "http://tomz.com/role/LeasesDetails4",
     "shortName": "LEASES (Details 4)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:TermLease",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000053 - Disclosure - LEASES (Details Narrative)",
     "menuCat": "Details",
     "order": "53",
     "role": "http://tomz.com/role/LeasesDetailsNarrative",
     "shortName": "LEASES (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:TermLease",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedComputerSoftwareGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000054 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)",
     "menuCat": "Details",
     "order": "54",
     "role": "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails",
     "shortName": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedComputerSoftwareGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:AmortizationOfCapitalizedSoftwareDevelopmentCosts",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)",
     "menuCat": "Details",
     "order": "55",
     "role": "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative",
     "shortName": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "tomz:CloudComputingServiceContractDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-05-01to2021-05-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:ProceedsFromServiceContractOfReceivables",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000056 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
     "menuCat": "Details",
     "order": "56",
     "role": "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative",
     "shortName": "CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "tomz:CloudComputingServiceContractDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-05-01to2021-05-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:ProceedsFromServiceContractOfReceivables",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31_tomz_StockWarrantMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:OutstandingBeginningOfPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000057 - Disclosure - SHAREHOLDERS EQUITY (Details)",
     "menuCat": "Details",
     "order": "57",
     "role": "http://tomz.com/role/ShareholdersEquityDetails",
     "shortName": "SHAREHOLDERS EQUITY (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31_tomz_StockWarrantMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:OutstandingBeginningOfPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000058 - Disclosure - SHAREHOLDERS EQUITY (Details 1)",
     "menuCat": "Details",
     "order": "58",
     "role": "http://tomz.com/role/ShareholdersEquityDetails1",
     "shortName": "SHAREHOLDERS EQUITY (Details 1)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31_tomz_WarrantsMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000059 - Disclosure - SHAREHOLDERS EQUITY (Details 2)",
     "menuCat": "Details",
     "order": "59",
     "role": "http://tomz.com/role/ShareholdersEquityDetails2",
     "shortName": "SHAREHOLDERS EQUITY (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-12-31_tomz_WarrantsMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "menuCat": "Statements",
     "order": "6",
     "role": "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:OtherDepreciationAndAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:WarrantsOutstandingAndExercisableByPriceRange",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "reportCount": 1,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000060 - Disclosure - SHAREHOLDERS EQUITY (Details 3)",
     "menuCat": "Details",
     "order": "60",
     "role": "http://tomz.com/role/ShareholdersEquityDetails3",
     "shortName": "SHAREHOLDERS EQUITY (Details 3)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:WarrantsOutstandingAndExercisableByPriceRange",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-09-30",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:CommonStockShareSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000061 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)",
     "menuCat": "Details",
     "order": "61",
     "role": "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
     "shortName": "SHAREHOLDERS EQUITY (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-09-30",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:CommonStockShareSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractualObligationDueInSecondYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000062 - Disclosure - CONTRACTS AND AGREEMENTS (Details)",
     "menuCat": "Details",
     "order": "62",
     "role": "http://tomz.com/role/ContractsAndAgreementsDetails",
     "shortName": "CONTRACTS AND AGREEMENTS (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractualObligationDueInSecondYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2017-12-01to2017-12-31_tomz_BoardOfMembersMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentForManagementFee",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000063 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)",
     "menuCat": "Details",
     "order": "63",
     "role": "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
     "shortName": "CONTRACTS AND AGREEMENTS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2017-12-01to2017-12-31_tomz_BoardOfMembersMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentForManagementFee",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000064 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
     "menuCat": "Details",
     "order": "64",
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ExtendedProductWarrantyAccrual",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000065 - Disclosure - ACCRUED WARRANTY (Details)",
     "menuCat": "Details",
     "order": "65",
     "role": "http://tomz.com/role/AccruedWarrantyDetails",
     "shortName": "ACCRUED WARRANTY (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ExtendedProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000066 - Disclosure - INCOME TAXES (Details)",
     "menuCat": "Details",
     "order": "66",
     "role": "http://tomz.com/role/IncomeTaxesDetails",
     "shortName": "INCOME TAXES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000067 - Disclosure - INCOME TAXES (Details 1)",
     "menuCat": "Details",
     "order": "67",
     "role": "http://tomz.com/role/IncomeTaxesDetails1",
     "shortName": "INCOME TAXES (Details 1)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:IncomeLossBeforeIncomeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000068 - Disclosure - INCOME TAXES (Details 2)",
     "menuCat": "Details",
     "order": "68",
     "role": "http://tomz.com/role/IncomeTaxesDetails2",
     "shortName": "INCOME TAXES (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:IncomeLossBeforeIncomeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:InventoryReserve",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000069 - Disclosure - INCOME TAXES (Details 3)",
     "menuCat": "Details",
     "order": "69",
     "role": "http://tomz.com/role/IncomeTaxesDetails3",
     "shortName": "INCOME TAXES (Details 3)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:InventoryReserve",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000007 - Disclosure - DESCRIPTION OF BUSINESS",
     "menuCat": "Notes",
     "order": "7",
     "role": "http://tomz.com/role/DescriptionOfBusiness",
     "shortName": "DESCRIPTION OF BUSINESS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLossCarryforwards",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000070 - Disclosure - INCOME TAXES (Details Narrative)",
     "menuCat": "Details",
     "order": "70",
     "role": "http://tomz.com/role/IncomeTaxesDetailsNarrative",
     "shortName": "INCOME TAXES (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLossCarryforwards",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000071 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)",
     "menuCat": "Details",
     "order": "71",
     "role": "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
     "shortName": "CUSTOMER CONCENTRATION (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-11-01to2022-11-30",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1",
      "reportCount": 1,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000072 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)",
     "menuCat": "Details",
     "order": "72",
     "role": "http://tomz.com/role/SubsequentEventsDetailsNarrative",
     "shortName": "SUBSEQUENT EVENTS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2023-01-31_srt_ChiefExecutiveOfficerMember_us-gaap_SubsequentEventMember",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
     "menuCat": "Notes",
     "order": "8",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPolicies",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000009 - Disclosure - INVENTORIES",
     "menuCat": "Notes",
     "order": "9",
     "role": "http://tomz.com/role/INVENTORIES",
     "shortName": "INVENTORIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2022-01-01to2022-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 59,
   "tag": {
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r470",
      "r471",
      "r472"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm Id"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r470",
      "r471",
      "r472"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r470",
      "r471",
      "r472"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r470",
      "r471",
      "r472"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r473"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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'.",
        "label": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address Address Line 1"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address City Or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address State Or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Common Stock Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation State Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r474"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r475"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well Known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_IcfrAuditorAttestationFlag": {
     "auth_ref": [
      "r470",
      "r471",
      "r472"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Icfr Auditor Attestation Flag"
       }
      }
     },
     "localname": "IcfrAuditorAttestationFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r467"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Security 12b Title"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r469"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "srt_BoardOfDirectorsChairmanMember": {
     "auth_ref": [
      "r496"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Board of Directors Chairman"
       }
      }
     },
     "localname": "BoardOfDirectorsChairmanMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ChiefExecutiveOfficerMember": {
     "auth_ref": [
      "r496"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Executive Officer [Member]"
       }
      }
     },
     "localname": "ChiefExecutiveOfficerMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ChiefFinancialOfficerMember": {
     "auth_ref": [
      "r496"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Financial Officer"
       }
      }
     },
     "localname": "ChiefFinancialOfficerMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ChiefOperatingOfficerMember": {
     "auth_ref": [
      "r496",
      "r548"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Operating Officer [Member]"
       }
      }
     },
     "localname": "ChiefOperatingOfficerMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_DirectorMember": {
     "auth_ref": [
      "r496"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Director [Member]"
       }
      }
     },
     "localname": "DirectorMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r247",
      "r461",
      "r509",
      "r560"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Major Customers Axis"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r280",
      "r281",
      "r282",
      "r283",
      "r311",
      "r403",
      "r425",
      "r445",
      "r446",
      "r459",
      "r462",
      "r466",
      "r507",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r280",
      "r281",
      "r282",
      "r283",
      "r311",
      "r403",
      "r425",
      "r445",
      "r446",
      "r459",
      "r462",
      "r466",
      "r507",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r247",
      "r461",
      "r509",
      "r560"
     ],
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r280",
      "r281",
      "r282",
      "r283",
      "r309",
      "r311",
      "r337",
      "r338",
      "r339",
      "r402",
      "r403",
      "r425",
      "r445",
      "r446",
      "r459",
      "r462",
      "r466",
      "r503",
      "r507",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r280",
      "r281",
      "r282",
      "r283",
      "r309",
      "r311",
      "r337",
      "r338",
      "r339",
      "r402",
      "r403",
      "r425",
      "r445",
      "r446",
      "r459",
      "r462",
      "r466",
      "r503",
      "r507",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557"
     ],
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r245",
      "r246",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r460",
      "r465",
      "r509"
     ],
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r245",
      "r246",
      "r431",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r460",
      "r465",
      "r509"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement Geographical Axis"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualAxis": {
     "auth_ref": [
      "r496",
      "r548"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "localname": "TitleOfIndividualAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "auth_ref": [],
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_AccountsPayablePolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Custom Element.",
        "label": "[Accounts Payable]",
        "verboseLabel": "Accounts Payable"
       }
      }
     },
     "localname": "AccountsPayablePolicyTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_AggregateCashConsideration": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate cash consideration"
       }
      }
     },
     "localname": "AggregateCashConsideration",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_AmortizationOfCapitalizedSoftwareDevelopmentCosts": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization Of Capitalized Software Development Costs",
        "verboseLabel": "Amortization of Capitalized Software Development Costs"
       }
      }
     },
     "localname": "AmortizationOfCapitalizedSoftwareDevelopmentCosts",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_AmortizationOfTenantImprovementAllowance": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization Of Tenant Improvement Allowance"
       }
      }
     },
     "localname": "AmortizationOfTenantImprovementAllowance",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_AnnualPaymentsOnContractTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual payments on contract term"
       }
      }
     },
     "localname": "AnnualPaymentsOnContractTerm",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "tomz_ApproximateMinimumContractPaymentsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of contractual obligation by timing of payment due. Includes, but is not limited to, long-term debt obligation, lease obligation, and purchase obligation.",
        "label": "Approximate Minimum Contract Payments"
       }
      }
     },
     "localname": "ApproximateMinimumContractPaymentsTableTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_Basic": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Basic]",
        "verboseLabel": "Basic"
       }
      }
     },
     "localname": "Basic",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_BoardOfMembersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Board of Members"
       }
      }
     },
     "localname": "BoardOfMembersMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_CapitalizedPatentAndTrademarkCosts": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Capitalized Patent and Trademark Costs"
       }
      }
     },
     "localname": "CapitalizedPatentAndTrademarkCosts",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Capitalized Software Development Costs]",
        "verboseLabel": "Capitalized Software Development Costs"
       }
      }
     },
     "localname": "CapitalizedSoftwareDevelopmentCostsTableTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_ChangesInRevenue": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes In Revenue"
       }
      }
     },
     "localname": "ChangesInRevenue",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ChiefOperatingOfficersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CEO [Member]"
       }
      }
     },
     "localname": "ChiefOperatingOfficersMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_CloudComputingServiceContractDisclosureTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[CLOUD COMPUTING SERVICE CONTRACT]",
        "verboseLabel": "CLOUD COMPUTING SERVICE CONTRACT"
       }
      }
     },
     "localname": "CloudComputingServiceContractDisclosureTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContract"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_CommitteeChairpersonMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Committee Chairperson"
       }
      }
     },
     "localname": "CommitteeChairpersonMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_CommonStockIssuableUponConversionOfOutstandingShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Issuable Upon Conversion Of Outstanding Shares"
       }
      }
     },
     "localname": "CommonStockIssuableUponConversionOfOutstandingShares",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_CommonStockIssuedForServicesProvidedAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Issued for Services Provided, amount"
       }
      }
     },
     "localname": "CommonStockIssuedForServicesProvidedAmount",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_CommonStockIssuedForServicesProvidedShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Issued for Services Provided, shares"
       }
      }
     },
     "localname": "CommonStockIssuedForServicesProvidedShares",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_CommonStockShareSold": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and",
        "label": "Common stock share sold"
       }
      }
     },
     "localname": "CommonStockShareSold",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_CommonStockSharesIssuedVested": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Issued"
       }
      }
     },
     "localname": "CommonStockSharesIssuedVested",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_ComputerSoftware": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer And Software"
       }
      }
     },
     "localname": "ComputerSoftware",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ConcentrationRiskPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk, Percentage"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_ConsultingFees": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 8.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Consulting Expenses incurred during the period.",
        "label": "Consulting Fees"
       }
      }
     },
     "localname": "ConsultingFees",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ContractsAndAgreementsTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contracts and agreements text block.",
        "label": "[CONTRACTS AND AGREEMENTS]",
        "verboseLabel": "CONTRACTS AND AGREEMENTS"
       }
      }
     },
     "localname": "ContractsAndAgreementsTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_DecreaseIncreaseInAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Decrease (Increase) in:"
       }
      }
     },
     "localname": "DecreaseIncreaseInAbstract",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease Right-of-use Liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetOperatingLeaseRightofuseLiabilities",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_DeferredTaxAssetsAccruedVacation": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 7.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Vacation"
       }
      }
     },
     "localname": "DeferredTaxAssetsAccruedVacation",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "[Warranty Reserve]",
        "verboseLabel": "Warranty Reserve"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "[Operating Lease Right-of-use Assets]",
        "negatedLabel": "Operating Lease Right-of-use Assets"
       }
      }
     },
     "localname": "DeferredTaxLiabilityOperatingLeaseRightofuseAssets",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_Diluted": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Diluted]",
        "verboseLabel": "Diluted"
       }
      }
     },
     "localname": "Diluted",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_DirectorFeesCurrentAndNoncurrent": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Director Fees"
       }
      }
     },
     "localname": "DirectorFeesCurrentAndNoncurrent",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_Equipments": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment"
       }
      }
     },
     "localname": "Equipments",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_EquityCompensation": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Compensation"
       }
      }
     },
     "localname": "EquityCompensation",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_EquityCompensationExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Compensation Expense"
       }
      }
     },
     "localname": "EquityCompensationExpense",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_EquityIncentivePlanOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "2016 Equity Incentive Plan"
       }
      }
     },
     "localname": "EquityIncentivePlanOneMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ExecutiveAgreementsWithElissaJShaneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Agreements (Elissa J. Shane)"
       }
      }
     },
     "localname": "ExecutiveAgreementsWithElissaJShaneMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ExecutiveAgreementsWithHaldenSShaneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Agreements (Halden S. Shane)"
       }
      }
     },
     "localname": "ExecutiveAgreementsWithHaldenSShaneMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ExercisePriceOfWarrant": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise price of warrant"
       }
      }
     },
     "localname": "ExercisePriceOfWarrant",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_ExpectedDividendYield": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Expected dividend yield]",
        "verboseLabel": "Expected dividend yield"
       }
      }
     },
     "localname": "ExpectedDividendYield",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_FairValueOfStockOption": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair value of stock option"
       }
      }
     },
     "localname": "FairValueOfStockOption",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_GeographicRegionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographic Region Member"
       }
      }
     },
     "localname": "GeographicRegionMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_GrantDateFairValuePerShareOfCommonStock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Grant date fair value per share of common stock"
       }
      }
     },
     "localname": "GrantDateFairValuePerShareOfCommonStock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_GrantFairValueOfPerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Grant fair value of per share"
       }
      }
     },
     "localname": "GrantFairValueOfPerShare",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_IncomeLossBeforeIncomeTax": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income (Loss) before income tax"
       }
      }
     },
     "localname": "IncomeLossBeforeIncomeTax",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_IncreaseDecreaseInAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in:"
       }
      }
     },
     "localname": "IncreaseDecreaseInAbstract",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_IncreaseDecreaseInLeaseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease Liability"
       }
      }
     },
     "localname": "IncreaseDecreaseInLeaseLiabilities",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_IntangibleAssetsNet": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets, Net"
       }
      }
     },
     "localname": "IntangibleAssetsNet",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_InternationalMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "International Member"
       }
      }
     },
     "localname": "InternationalMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_InventoryReserve": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "[Inventory Reserve]",
        "verboseLabel": "Inventory Reserve"
       }
      }
     },
     "localname": "InventoryReserve",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_IssuedWarrantsInConcurrentPlacementAgent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issued warrants in concurrent placement agent"
       }
      }
     },
     "localname": "IssuedWarrantsInConcurrentPlacementAgent",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_IssuedWarrantsInConcurrentPrivatePlacement": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issued warrants in concurrent private placement"
       }
      }
     },
     "localname": "IssuedWarrantsInConcurrentPrivatePlacement",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_JanuaryTwentyTwentyOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "January 2021 [Member]"
       }
      }
     },
     "localname": "JanuaryTwentyTwentyOneMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_JanuaryTwentyTwentyTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "January 2022 [Member]"
       }
      }
     },
     "localname": "JanuaryTwentyTwentyTwoMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_JanuaryTwentyTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "January Twenty Two [Member]"
       }
      }
     },
     "localname": "JanuaryTwentyTwoMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_LeaseOtherInformationTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Information Related to Leases"
       }
      }
     },
     "localname": "LeaseOtherInformationTableTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long lived assets including acquired intangible assets.",
        "label": "Long-Lived Assets Including Acquired Intangible Assets"
       }
      }
     },
     "localname": "LonglivedAssetsIncludingAcquiredIntangibleAssets",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_MaximumIncreasesRentPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increases Rent Percentage Escalation Clause"
       }
      }
     },
     "localname": "MaximumIncreasesRentPercentage",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_NetDeferredTaxAssetsIncreasedValuationAllowance": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Net deferred tax assets increased valuation allowance"
       }
      }
     },
     "localname": "NetDeferredTaxAssetsIncreasedValuationAllowance",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_NetDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Net deferred tax assets valuation allowance"
       }
      }
     },
     "localname": "NetDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_NetLossAttributableToCommonShareholders": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (loss) Attributable To Common Shareholders"
       }
      }
     },
     "localname": "NetLossAttributableToCommonShareholders",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_OneCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "One Customer"
       }
      }
     },
     "localname": "OneCustomerMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_OperatingLeaseLiabilityTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityTableTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted-average Remaining Lease Term: Operating Leases"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAveragesRemainingLeaseTerm",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/LeasesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_OutstandingBeginningOfPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding, beginning of period"
       }
      }
     },
     "localname": "OutstandingBeginningOfPeriod",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_OutstandingEndOfPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding, end of period"
       }
      }
     },
     "localname": "OutstandingEndOfPeriod",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Patent and trademark costs reclassified from Other Assets"
       }
      }
     },
     "localname": "PatentAndTrademarkCostsReclassifiedFromOtherAssets",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_PlacementAgentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Placement Agent [Members]"
       }
      }
     },
     "localname": "PlacementAgentMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_PreferredStockParOrStatedValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Convertible Preferred Stock; Stated Value"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValue",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_PrivatePlacementsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Private Placement [Members]"
       }
      }
     },
     "localname": "PrivatePlacementsMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ProceedsFromServiceContractOfReceivables": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual payments on contract received"
       }
      }
     },
     "localname": "ProceedsFromServiceContractOfReceivables",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ProvisionForIncomeTaxes": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for Income Taxes"
       }
      }
     },
     "localname": "ProvisionForIncomeTaxes",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_PurchaseOfPropertyAndEquipment": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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 a",
        "label": "Purchase of Property and Equipment"
       }
      }
     },
     "localname": "PurchaseOfPropertyAndEquipment",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_RangeEightMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[$7.06]",
        "verboseLabel": "$7.06"
       }
      }
     },
     "localname": "RangeEightMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeFiveMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$2.16"
       }
      }
     },
     "localname": "RangeFiveMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeFourMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$1.93"
       }
      }
     },
     "localname": "RangeFourMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeNineMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$1.12"
       }
      }
     },
     "localname": "RangeNineMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$0.80"
       }
      }
     },
     "localname": "RangeOneMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeSevenMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$7.06"
       }
      }
     },
     "localname": "RangeSevenMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeThreeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$0.96"
       }
      }
     },
     "localname": "RangeThreeMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$0.88"
       }
      }
     },
     "localname": "RangeTwoMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ResearchAndDevelopmentsExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Research And Development Expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentsExpense",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_RiskFreeInterestRate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Risk free interest rate]",
        "verboseLabel": "Risk free interest rate"
       }
      }
     },
     "localname": "RiskFreeInterestRate",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_SalesTaxPayable": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales Tax Payable"
       }
      }
     },
     "localname": "SalesTaxPayable",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_SeriesAPreferredStocksMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Series A Preferred Stock"
       }
      }
     },
     "localname": "SeriesAPreferredStocksMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ServiceAndTrainingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Service And Training Member"
       }
      }
     },
     "localname": "ServiceAndTrainingMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_SettlementOfWarrantyClaims": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Settlement Of Warranty Claims"
       }
      }
     },
     "localname": "SettlementOfWarrantyClaims",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Number of Exercisable Options]",
        "verboseLabel": "Number of Exercisable Options"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumbers",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Weighted Average Exercise Price, Exercisable Options]",
        "verboseLabel": "Weighted Average Exercise Price, Exercisable Options"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrices",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Exercised]",
        "negatedLabel": "Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Outstanding, Beginning Balance]",
        "verboseLabel": "Outstanding, Beginning Balance"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumbers",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Average Weighted Remaining Contractual Life in Years, Outstanding]",
        "verboseLabel": "Average Weighted Remaining Contractual Life in Years, Outstanding"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "durationItemType"
    },
    "tomz_StateNetOperatingLossCarryforwards": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "State Net Operating Loss Carryforwards"
       }
      }
     },
     "localname": "StateNetOperatingLossCarryforwards",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_SteraMistPRoductMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SteraMist PRoduct Member"
       }
      }
     },
     "localname": "SteraMistPRoductMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_StockOptionTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock option term"
       }
      }
     },
     "localname": "StockOptionTerm",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "tomz_StockOptionValued": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock option valued"
       }
      }
     },
     "localname": "StockOptionValued",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_StockOptionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Options",
        "verboseLabel": "Stock Options"
       }
      }
     },
     "localname": "StockOptionsMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_StockWarrantMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Warrant [Member]"
       }
      }
     },
     "localname": "StockWarrantMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information related to leases"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_TermLease": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Term Lease"
       }
      }
     },
     "localname": "TermLease",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "tomz_TermOfAgreement": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Term of agreement"
       }
      }
     },
     "localname": "TermOfAgreement",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_TermsOfOutstandingWarrantsToPurchase": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Terms of outstanding warrants to purchase"
       }
      }
     },
     "localname": "TermsOfOutstandingWarrantsToPurchase",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_ThreeCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Three Customer"
       }
      }
     },
     "localname": "ThreeCustomerMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_TwoCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Two Customer"
       }
      }
     },
     "localname": "TwoCustomerMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_TwoVendorsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Two Vendors"
       }
      }
     },
     "localname": "TwoVendorsMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_UnitedStatesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States Member"
       }
      }
     },
     "localname": "UnitedStatesMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_VendorDepositsTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[VENDOR DEPOSITS]",
        "verboseLabel": "VENDOR DEPOSITS"
       }
      }
     },
     "localname": "VendorDepositsTextBlock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/VendorDeposits"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_Volatility": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Volatility"
       }
      }
     },
     "localname": "Volatility",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_WarrantAmendmentDescription": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrant amendment, description"
       }
      }
     },
     "localname": "WarrantAmendmentDescription",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_WarrantsAndOptionsExercisedAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrants and Options Exercised, amount"
       }
      }
     },
     "localname": "WarrantsAndOptionsExercisedAmount",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_WarrantsAndOptionsExercisedShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrants and Options Exercised, shares"
       }
      }
     },
     "localname": "WarrantsAndOptionsExercisedShares",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_WarrantsEightMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 2.18"
       }
      }
     },
     "localname": "WarrantsEightMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsElevenMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 6.95"
       }
      }
     },
     "localname": "WarrantsElevenMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsFiveMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 1.20"
       }
      }
     },
     "localname": "WarrantsFiveMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsFourMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 1.12"
       }
      }
     },
     "localname": "WarrantsFourMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsIssuedUponPurchaseShareOfCommonStock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrants issued upon purchase share of common stock"
       }
      }
     },
     "localname": "WarrantsIssuedUponPurchaseShareOfCommonStock",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_WarrantsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrants"
       }
      }
     },
     "localname": "WarrantsMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.64"
       }
      }
     },
     "localname": "WarrantsOneMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsOutstandingAndExercisableByPriceRange": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Custom Element.",
        "label": "Warrants Outstanding and Exercisable by Price Range"
       }
      }
     },
     "localname": "WarrantsOutstandingAndExercisableByPriceRange",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_WarrantsSevenMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 1.68"
       }
      }
     },
     "localname": "WarrantsSevenMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsTenMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 4.00"
       }
      }
     },
     "localname": "WarrantsTenMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsThreeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.96"
       }
      }
     },
     "localname": "WarrantsThreeMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsTwelveMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 8.40"
       }
      }
     },
     "localname": "WarrantsTwelveMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.80"
       }
      }
     },
     "localname": "WarrantsTwoMember",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WeightedAverageExercisePriceAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Exercise Price"
       }
      }
     },
     "localname": "WeightedAverageExercisePriceAbstract",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_WeightedAverageExercisePriceExercised": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price, Exercised"
       }
      }
     },
     "localname": "WeightedAverageExercisePriceExercised",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_WeightedAverageExercisePriceExpired": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price, Expired"
       }
      }
     },
     "localname": "WeightedAverageExercisePriceExpired",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_WeightedAverageExercisePriceGranted": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price, Granted"
       }
      }
     },
     "localname": "WeightedAverageExercisePriceGranted",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_WeightedAverageExercisePriceOutstandingBeginningBalance": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price outstanding, Beginning balance"
       }
      }
     },
     "localname": "WeightedAverageExercisePriceOutstandingBeginningBalance",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_WeightedAverageExercisePriceOutstandingEndingBalance": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price outstanding, Ending balance"
       }
      }
     },
     "localname": "WeightedAverageExercisePriceOutstandingEndingBalance",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_WeightedAverageNumberOfDilutedShareOutstanding1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted Weighted Average Shares"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedShareOutstanding1",
     "nsuri": "http://tomz.com/20221231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for accounts payable, accrued expenses, and other liabilities that are classified as current at the end of the reporting period.",
        "label": "Accounts Payable, Accrued Liabilities, and Other Liabilities Disclosure, Current [Text Block]",
        "verboseLabel": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES"
       }
      }
     },
     "localname": "AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r17",
      "r464"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 14.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "[Accounts Payable, Current]",
        "verboseLabel": "Accounts Payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsPayableMember": {
     "auth_ref": [
      "r1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Obligations incurred and payable to vendors for goods and services received.",
        "label": "Accounts Payable [Member]",
        "verboseLabel": "Accounts Payable"
       }
      }
     },
     "localname": "AccountsPayableMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r248",
      "r249"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Accounts Receivable - net"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 15.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.",
        "label": "Accrued Expenses and Other Current Liabilities (Note 13)",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "AccruedLiabilitiesAndOtherLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES"
       }
      }
     },
     "localname": "AccruedLiabilitiesAndOtherLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent": {
     "auth_ref": [
      "r120",
      "r132"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory payroll taxes incurred through that date and withheld from employees pertaining to services received from them, including entity's matching share of the employees FICA taxes and contributions to the state and federal unemployment insurance programs.",
        "label": "Payroll And Related Costs"
       }
      }
     },
     "localname": "AccruedPayrollTaxesCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r71",
      "r158"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.",
        "label": "Less: Accumulated Depreciation"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapital": {
     "auth_ref": [
      "r9",
      "r464"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 24.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "[Additional Paid in Capital]",
        "verboseLabel": "Additional Paid-In Capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapital",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r341",
      "r342",
      "r343",
      "r492",
      "r493",
      "r494",
      "r542"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.",
        "label": "Additional Paid-in Capital [Member]",
        "verboseLabel": "Additional Paid-In Capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Net Cash Provided by (Used) In Operating Activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "auth_ref": [
      "r346"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for advertising cost.",
        "label": "Advertising and Promotional Expenses"
       }
      }
     },
     "localname": "AdvertisingCostsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AdvertisingExpense": {
     "auth_ref": [
      "r347"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.",
        "label": "Advertising And Promotional Expenses"
       }
      }
     },
     "localname": "AdvertisingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r165",
      "r250",
      "r253",
      "r254",
      "r256"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable.",
        "label": "Allowance For Doubtful Accounts"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease": {
     "auth_ref": [
      "r502"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in allowance for credit loss on accounts receivable.",
        "label": "Reserve for Bad Debt"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r35",
      "r58",
      "r64"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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. 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.",
        "label": "Amortization Expense"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r208"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Potentially Dilutive Securities"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AreaOfLand": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area of land held.",
        "label": "Area Of Lease Facility"
       }
      }
     },
     "localname": "AreaOfLand",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "areaItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r117",
      "r128",
      "r161",
      "r183",
      "r231",
      "r236",
      "r242",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r374",
      "r376",
      "r382",
      "r464",
      "r505",
      "r506",
      "r550"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "[Assets]",
        "totalLabel": "Total Assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r154",
      "r169",
      "r183",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r374",
      "r376",
      "r382",
      "r464",
      "r505",
      "r506",
      "r550"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 12.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "[Assets, Current]",
        "totalLabel": "Total Current Assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AwardDateAxis": {
     "auth_ref": [
      "r510",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by date or year award under share-based payment arrangement is granted.",
        "label": "Award Date [Axis]"
       }
      }
     },
     "localname": "AwardDateAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardDateDomain": {
     "auth_ref": [
      "r510",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Date or year award under share-based payment arrangement is granted."
       }
      }
     },
     "localname": "AwardDateDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r312",
      "r313",
      "r314",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type Axis"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r104"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Segments"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CapitalLeaseObligationsCurrent": {
     "auth_ref": [
      "r144",
      "r148",
      "r149"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of capital lease obligation due within one year or the normal operating cycle, if longer.",
        "label": "Present Value Of Lease Obligations"
       }
      }
     },
     "localname": "CapitalLeaseObligationsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization": {
     "auth_ref": [
      "r561"
     ],
     "calculation": {
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_CapitalizedComputerSoftwareNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For each balance sheet presented, the amount of accumulated amortization for capitalized computer software costs.",
        "label": "[Capitalized Computer Software, Accumulated Amortization]",
        "negatedLabel": "Less: Accumulated Amortization"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareAmortization1": {
     "auth_ref": [
      "r140",
      "r142"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for amortization of capitalized computer software costs.",
        "label": "Amortization of Software Costs"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareAmortization1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareGross": {
     "auth_ref": [
      "r561"
     ],
     "calculation": {
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_CapitalizedComputerSoftwareNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated amortization of capitalized costs for computer software, including but not limited to, acquired and internally developed computer software.",
        "label": "Capitalized Software Development Costs, Gross"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareNet": {
     "auth_ref": [
      "r447"
     ],
     "calculation": {
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The carrying amount of capitalized computer software costs net of accumulated amortization as of the balance sheet date.",
        "label": "[Capitalized Computer Software, Net]",
        "totalLabel": "Capitalized Software Development Costs, Net"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross": {
     "auth_ref": [
      "r114"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The sum of capitalized costs relating to oil and gas producing activities before accounting for accumulated depreciation.",
        "label": "Capitalized Costs In Progress - Tooling And Molds"
       }
      }
     },
     "localname": "CapitalizedCostsOilAndGasProducingActivitiesGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers": {
     "auth_ref": [
      "r116",
      "r127",
      "r139"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 10.0,
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unamortized costs incurred for development of computer software, which is to be sold, leased or otherwise marketed, after establishing technological feasibility through to the general release of the software products. Excludes capitalized costs of developing software for internal use.",
        "label": "Capitalized Software Development Costs - net (Note 8)"
       }
      }
     },
     "localname": "CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r39"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "verboseLabel": "Cash and Cash Equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r32",
      "r37",
      "r44"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, 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.",
        "label": "[Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents]",
        "periodEndLabel": "Cash and Cash Equivalents - Ending",
        "periodStartLabel": "Cash and Cash Equivalents - Beginning"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
     "auth_ref": [
      "r32",
      "r112"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; excluding effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, 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.",
        "label": "[Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Excluding Exchange Rate Effect]",
        "totalLabel": "Increase (Decrease) In Cash and Cash Equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r478"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of 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. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and Cash Equivalents"
       }
      }
     },
     "localname": "CashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [
      "r162",
      "r163",
      "r164",
      "r183",
      "r202",
      "r203",
      "r205",
      "r207",
      "r212",
      "r213",
      "r251",
      "r284",
      "r286",
      "r287",
      "r288",
      "r291",
      "r292",
      "r293",
      "r294",
      "r296",
      "r300",
      "r306",
      "r382",
      "r448",
      "r476",
      "r489",
      "r495"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock."
       }
      }
     },
     "localname": "ClassOfStockDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfWarrantOrRightAxis": {
     "auth_ref": [
      "r86",
      "r89"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of warrant or right issued.",
        "label": "Class Of Warrant Or Right Axis"
       }
      }
     },
     "localname": "ClassOfWarrantOrRightAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ClassOfWarrantOrRightDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the class or type of warrant or right outstanding. Warrants and rights represent derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months."
       }
      }
     },
     "localname": "ClassOfWarrantOrRightDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1": {
     "auth_ref": [
      "r307"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Exercise price per share or per unit of warrants or rights outstanding.",
        "label": "[Class of Warrant or Right, Exercise Price of Warrants or Rights]",
        "verboseLabel": "Exercise price"
       }
      }
     },
     "localname": "ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of securities into which each warrant or right may be converted. For example, but not limited to, each warrant may be converted into two shares.",
        "label": "Warrant to purchase shares of common stock"
       }
      }
     },
     "localname": "ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights": {
     "auth_ref": [
      "r307"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares.",
        "label": "Options full consideration of the amount entitled"
       }
      }
     },
     "localname": "ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ClassOfWarrantOrRightOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of warrants or rights outstanding.",
        "label": "[Class of Warrant or Right, Outstanding]",
        "verboseLabel": "Warrants"
       }
      }
     },
     "localname": "ClassOfWarrantOrRightOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "COMMITMENTS AND CONTINGENCIES"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r74",
      "r278",
      "r279",
      "r432",
      "r504"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "verboseLabel": "COMMITMENTS AND CONTINGENCIES"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CommitmentsAndContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r492",
      "r493",
      "r542"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common Stock; Par Value"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
        "label": "Common Stock; Shares Authorized",
        "verboseLabel": "Common Stock, Shares Authorized"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.",
        "label": "Common Stock; Shares Issued"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r8",
      "r84"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common Stock; Shares Outstanding"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r8",
      "r464"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 22.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Common stock; par value $0.01 per share, 250,000,000 shares authorized; 19,763,955 and 16,761,513 shares issued and outstanding at December 31, 2022 and December 31, 2021, respectively.",
        "verboseLabel": "Common stock value"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax assets:"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxAssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax liabilities:"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r126",
      "r217"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for credit risk.",
        "label": "Concentrations of Credit Risk"
       }
      }
     },
     "localname": "ConcentrationRiskCreditRisk",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskDisclosureTextBlock": {
     "auth_ref": [
      "r53"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date.",
        "label": "Concentration Risk Disclosure [Text Block]",
        "verboseLabel": "CUSTOMER CONCENTRATION"
       }
      }
     },
     "localname": "ConcentrationRiskDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CustomerConcentration"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r48",
      "r49",
      "r110",
      "r111",
      "r247"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Concentration Risk Percentage"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r451"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Principles of Consolidation"
       }
      }
     },
     "localname": "ConsolidationPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConstructionInProgressGross": {
     "auth_ref": [
      "r70"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.",
        "label": "Tenant Improvement Allowance"
       }
      }
     },
     "localname": "ConstructionInProgressGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractualObligation": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/ContractsAndAgreementsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contractual obligation, including but not limited to, long-term debt, capital lease obligations, operating lease obligations, purchase obligations, and other commitments.",
        "label": "[Contractual Obligation]",
        "totalLabel": "Total Minimum Payments"
       }
      }
     },
     "localname": "ContractualObligation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractualObligationDueInFourthYear": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/ContractsAndAgreementsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_ContractualObligation",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contractual obligation 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).",
        "label": "[Contractual Obligation, to be Paid, Year Four]",
        "verboseLabel": "December 31, 2025"
       }
      }
     },
     "localname": "ContractualObligationDueInFourthYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractualObligationDueInSecondYear": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/ContractsAndAgreementsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_ContractualObligation",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contractual obligation 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).",
        "label": "[Contractual Obligation, to be Paid, Year Two]",
        "verboseLabel": "December 31, 2023"
       }
      }
     },
     "localname": "ContractualObligationDueInSecondYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractualObligationDueInThirdYear": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/ContractsAndAgreementsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_ContractualObligation",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contractual obligation 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).",
        "label": "[Contractual Obligation, to be Paid, Year Three]",
        "verboseLabel": "December 31, 2024"
       }
      }
     },
     "localname": "ContractualObligationDueInThirdYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConversionOfStockAmountIssued1": {
     "auth_ref": [
      "r41",
      "r42",
      "r43"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The value of the financial instrument issued [noncash or part noncash] in the conversion of stock. Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
        "label": "Common stock issued amount"
       }
      }
     },
     "localname": "ConversionOfStockAmountIssued1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConversionOfStockSharesIssued1": {
     "auth_ref": [
      "r41",
      "r42",
      "r43"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of new shares issued in the conversion of stock in a noncash (or part noncash) transaction. Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
        "label": "Common stock issued"
       }
      }
     },
     "localname": "ConversionOfStockSharesIssued1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSoldAmortization": {
     "auth_ref": [
      "r486"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service.",
        "label": "Amortization expense"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSoldAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfRevenue": {
     "auth_ref": [
      "r25",
      "r183",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r382",
      "r505"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.",
        "label": "Cost of Sales"
       }
      }
     },
     "localname": "CostOfRevenue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfSalesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing cost of sales.",
        "label": "Cost of Sales [Member]"
       }
      }
     },
     "localname": "CostOfSalesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostsAndExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Expenses:"
       }
      }
     },
     "localname": "CostsAndExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r491",
      "r539",
      "r541"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r491",
      "r539"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Foreign"
       }
      }
     },
     "localname": "CurrentForeignTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r103",
      "r358",
      "r366",
      "r491"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
        "label": "[Current Income Tax Expense (Benefit)]",
        "negatedLabel": "Current Income Tax Expense Benefit"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current:"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r491",
      "r539",
      "r541"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerDepositsCurrent": {
     "auth_ref": [
      "r145"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 16.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The current portion of money or property received from customers which is either to be returned upon satisfactory contract completion or applied to customer receivables in accordance with the terms of the contract or the understandings.",
        "label": "Deferred Revenue"
       }
      }
     },
     "localname": "CustomerDepositsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "ACCRUED WARRANTY"
       }
      }
     },
     "localname": "DebtDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1": {
     "auth_ref": [
      "r88",
      "r90"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum term of the deferred compensation arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Contractual term",
        "verboseLabel": "Contractual term"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualMaximumContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r491",
      "r540",
      "r541"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "[Deferred Federal Income Tax Expense (Benefit)]",
        "verboseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r103",
      "r491",
      "r540"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "[Deferred Foreign Income Tax Expense (Benefit)]",
        "verboseLabel": "Foreign"
       }
      }
     },
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r35",
      "r103",
      "r359",
      "r365",
      "r366",
      "r491"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "DeferredIncomeTaxExpenseBenefit"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred:"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r491",
      "r540",
      "r541"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "[Deferred State and Local Income Tax Expense (Benefit)]",
        "verboseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.",
        "label": "Intangible Assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsGoodwillAndIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "auth_ref": [
      "r537"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.",
        "label": "[Deferred Tax Assets, Net]",
        "totalLabel": "Net Deferred Tax Assets and Liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "auth_ref": [
      "r537"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 9.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "[Deferred Tax Assets, Net of Valuation Allowance]",
        "totalLabel": "Deferred Tax Assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "auth_ref": [
      "r101",
      "r538"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.",
        "label": "Net Operating Losses"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": {
     "auth_ref": [
      "r101",
      "r538"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 8.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.",
        "label": "[Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Accounts Receivable, Allowance for Credit Loss]",
        "verboseLabel": "Reserve for Bad Debt"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": {
     "auth_ref": [
      "r101",
      "r538"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves.",
        "label": "Warranty Reserve"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r355"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
        "label": "[Deferred Tax Assets, Valuation Allowance]",
        "negatedLabel": "Valuation Allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilities": {
     "auth_ref": [
      "r97",
      "r537"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails3": {
       "order": 10.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.",
        "label": "[Deferred Tax Liabilities, Net]",
        "negatedLabel": "Total"
       }
      }
     },
     "localname": "DeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts": {
     "auth_ref": [
      "r101",
      "r538"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from research and development costs.",
        "label": "Capitalized Research and Development"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesDeferredExpenseCapitalizedResearchAndDevelopmentCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r101",
      "r538"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
        "label": "[Deferred Tax Liabilities, Property, Plant and Equipment]",
        "negatedLabel": "Property Plant and Equipment"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Deposits": {
     "auth_ref": [
      "r119"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate of all deposit liabilities held by the entity, including foreign and domestic, interest and noninterest bearing; may include demand deposits, saving deposits, Negotiable Order of Withdrawal (NOW) and time deposits among others.",
        "label": "vendor deposits"
       }
      }
     },
     "localname": "Deposits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/VendorDepositsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepositsAssetsCurrent": {
     "auth_ref": [
      "r484"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value of amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment within one year or during the operating cycle, if shorter.",
        "label": "Vendor Deposits (Note 4)"
       }
      }
     },
     "localname": "DepositsAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r35",
      "r69"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.",
        "label": "Depreciation"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationAndAmortization": {
     "auth_ref": [
      "r35",
      "r69"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 5.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.",
        "label": "Depreciation and Amortization"
       }
      }
     },
     "localname": "DepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONTRACTS AND AGREEMENTS"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r509"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Disaggregation of Revenue"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net income (loss) Per Common Share"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r178",
      "r192",
      "r193",
      "r194",
      "r195",
      "r196",
      "r200",
      "r202",
      "r205",
      "r206",
      "r207",
      "r209",
      "r380",
      "r381",
      "r420",
      "r423",
      "r455"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Basic",
        "verboseLabel": "Basic"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number Of Common Shares Outstanding:"
       }
      }
     },
     "localname": "EarningsPerShareBasicOtherDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r178",
      "r192",
      "r193",
      "r194",
      "r195",
      "r196",
      "r202",
      "r205",
      "r206",
      "r207",
      "r209",
      "r380",
      "r381",
      "r420",
      "r423",
      "r455"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Diluted",
        "verboseLabel": "Diluted"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r46",
      "r47"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.",
        "label": "Net Income (Loss) Per Share"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r185",
      "r351",
      "r368"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "US statutory corporate income tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r120",
      "r132"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Commissions"
       }
      }
     },
     "localname": "EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r84",
      "r151",
      "r173",
      "r174",
      "r175",
      "r187",
      "r188",
      "r189",
      "r191",
      "r197",
      "r199",
      "r211",
      "r252",
      "r308",
      "r341",
      "r342",
      "r343",
      "r361",
      "r362",
      "r379",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r396",
      "r426",
      "r427",
      "r428"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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."
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrual": {
     "auth_ref": [
      "r77"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount as of the balance sheet date of the aggregate extended product warranty liability. Does not include the ending balance for the standard product warranty liability.",
        "label": "[Extended Product Warranty Accrual]",
        "periodEndLabel": "Ending Accrued Warranty Cost",
        "periodStartLabel": "Beginning Accrued Warranty Costs"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrual",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrualCurrent": {
     "auth_ref": [
      "r19"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid within one year of the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability.",
        "label": "Accrued Warranty (note 14)"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrualCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyPolicy": {
     "auth_ref": [
      "r75"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for extended product warranties and other guarantee contracts including the methodology for measuring the liability.",
        "label": "Accrued Warranties"
       }
      }
     },
     "localname": "ExtendedProductWarrantyPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ExtinguishmentOfDebtAxis": {
     "auth_ref": [
      "r82"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the debt extinguished including the amount of gain (loss), the income tax effect on the gain (loss), and the amount of gain (loss), net or the related income tax, by debt instrument.",
        "label": "Extinguishment Of Debt Axis"
       }
      }
     },
     "localname": "ExtinguishmentOfDebtAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ExtinguishmentOfDebtTypeDomain": {
     "auth_ref": [
      "r82"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of debt extinguished."
       }
      }
     },
     "localname": "ExtinguishmentOfDebtTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ExtraordinaryAndUnusualItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "VENDOR DEPOSITS"
       }
      }
     },
     "localname": "ExtraordinaryAndUnusualItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities.",
        "label": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueMeasurementPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FederalDepositInsuranceCorporationPremiumExpense": {
     "auth_ref": [
      "r123"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for Federal Deposit Insurance Corporation (FDIC) insurance.",
        "label": "Cash Balances At Financial Institutions"
       }
      }
     },
     "localname": "FederalDepositInsuranceCorporationPremiumExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r159",
      "r271"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Less: Accumulated Amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth 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).",
        "label": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r65"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "December 31, 2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r65"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth 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).",
        "label": "December 31, 2027"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r65"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "December 31, 2026"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r65"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "December 31, 2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r65"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "December 31, 2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r63",
      "r407"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Intellectual Property And Patents"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r63",
      "r406"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "[Finite-Lived Intangible Assets, Net]",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FurnitureAndFixturesGross": {
     "auth_ref": [
      "r70"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated depreciation of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.",
        "label": "Furniture And Fixtures"
       }
      }
     },
     "localname": "FurnitureAndFixturesGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainsLossesOnExtinguishmentOfDebt": {
     "auth_ref": [
      "r35",
      "r80",
      "r81"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 12.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.",
        "label": "Gain Upon Debt Extinguishment",
        "verboseLabel": "Gain Upon Debt Extinguishment"
       }
      }
     },
     "localname": "GainsLossesOnExtinguishmentOfDebt",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INTANGIBLE ASSETS"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r24",
      "r183",
      "r231",
      "r235",
      "r241",
      "r243",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r382",
      "r457",
      "r505"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 10.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "[Gross Profit]",
        "totalLabel": "Gross Profit"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GuaranteesTextBlock": {
     "auth_ref": [
      "r79"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for each guarantee obligation, or each group of similar guarantee obligations, including (a) the nature of the guarantee, including its term, how it arose, and the events or circumstances that would require the guarantor to perform under the guarantee; (b) the maximum potential amount of future payments (undiscounted) the guarantor could be required to make under the guarantee; (c) the current carrying amount of the liability, if any, for the guarantor's obligations under the guarantee; and (d) the nature of any recourse provisions under the guarantee, and any assets held either as collateral or by third parties, and any relevant related party disclosure. Excludes disclosures about product warranties.",
        "label": "Guarantees [Text Block]",
        "verboseLabel": "ACCRUED WARRANTY"
       }
      }
     },
     "localname": "GuaranteesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedWarranty"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the effects of asset impairment charge on per share or per unit basis.",
        "label": "Impairment Effects on Earnings Per Share [Table Text Block]",
        "verboseLabel": "Net Income (Loss) Per Share"
       }
      }
     },
     "localname": "ImpairmentEffectsOnEarningsPerShareTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "auth_ref": [
      "r184",
      "r367"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r22",
      "r115",
      "r121",
      "r134",
      "r231",
      "r235",
      "r241",
      "r243",
      "r421",
      "r457"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 17.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "[Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest]",
        "totalLabel": "Income (loss) before income taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r184",
      "r367"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": {
     "auth_ref": [
      "r231",
      "r235",
      "r241",
      "r243",
      "r457"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.",
        "label": "Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest]"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r273",
      "r275"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location Axis"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [
      "r275"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement."
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAXES"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r185",
      "r352",
      "r353",
      "r357",
      "r363",
      "r369",
      "r371",
      "r372",
      "r373"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income Tax Disclosure [Text Block]",
        "verboseLabel": "INCOME TAXES"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r186",
      "r198",
      "r199",
      "r229",
      "r350",
      "r364",
      "r370",
      "r424"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 18.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Provision for Income Taxes (Note 16)",
        "verboseLabel": "Income tax expense (benefit)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reconciling items:"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r172",
      "r348",
      "r349",
      "r353",
      "r354",
      "r356",
      "r360"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r536"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.",
        "label": "Change in valuation allowance on deferred tax assets"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r351"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Income tax expense computed at US statutory corporate income tax rate"
       }
      }
     },
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization": {
     "auth_ref": [
      "r536"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.",
        "label": "[Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount]",
        "verboseLabel": "Gain Upon Debt Extinguishment"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpenseAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "auth_ref": [
      "r536"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.",
        "label": "Incentive stock options and warrants"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": {
     "auth_ref": [
      "r536"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.",
        "label": "Other"
       }
      }
     },
     "localname": "IncomeTaxReconciliationOtherReconcilingItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes": {
     "auth_ref": [
      "r536"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit).",
        "label": "Provision to prior year tax return"
       }
      }
     },
     "localname": "IncomeTaxReconciliationPriorYearIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r40"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
        "label": "Cash Paid (Refunded) for Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r34"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount 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.",
        "label": "[Increase (Decrease) in Accounts Payable]",
        "verboseLabel": "Accounts Payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Accounts Receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r34"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.",
        "label": "Accrued Expenses"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInCustomerDeposits": {
     "auth_ref": [
      "r146"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the period in the amount of customer money held in customer accounts, including security deposits, collateral for a current or future transactions, initial payment of the cost of acquisition or for the right to enter into a contract or agreement.",
        "label": "[Increase (Decrease) in Customer Deposits]",
        "verboseLabel": "Deferred Revenue"
       }
      }
     },
     "localname": "IncreaseDecreaseInCustomerDeposits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeposits": {
     "auth_ref": [
      "r38",
      "r125"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances.",
        "label": "Vendor Deposits"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeposits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Inventory"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating assets classified as other.",
        "label": "[Increase (Decrease) in Other Operating Assets]",
        "verboseLabel": "Other Assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in Operating Assets and Liabilities:"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherReceivables": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in receivables classified as other.",
        "label": "[Increase (Decrease) in Other Receivables]",
        "verboseLabel": "Other Receivables"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherReceivables",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidExpense": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.",
        "label": "[Increase (Decrease) in Prepaid Expense]",
        "verboseLabel": "Prepaid Expenses"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IndefiniteLivedTrademarks": {
     "auth_ref": [
      "r66"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount (original costs adjusted for previously recognized amortization and impairment) as of the balance sheet date for the rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style for a projected indefinite period of benefit.",
        "label": "Trademarks"
       }
      }
     },
     "localname": "IndefiniteLivedTrademarks",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r272"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all or part of the information related to intangible assets.",
        "label": "Intangible Assets Disclosure [Text Block]",
        "verboseLabel": "INTANGIBLE ASSETS"
       }
      }
     },
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r57",
      "r61"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 8.0,
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Intangible Assets - net (Note 6)",
        "verboseLabel": "Total Intangible Assets, Net"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/IntangibleAssetsDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r113",
      "r124",
      "r176",
      "r225",
      "r390"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 14.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.",
        "label": "[Interest Expense]",
        "negatedLabel": "Interest Expense"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestIncomeOther": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 13.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest income earned from interest bearing assets classified as other.",
        "label": "Interest Income"
       }
      }
     },
     "localname": "InterestIncomeOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INVENTORIES"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r259"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.",
        "label": "Inventory Disclosure [Text Block]",
        "verboseLabel": "INVENTORIES"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/INVENTORIES"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoods": {
     "auth_ref": [
      "r481"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.",
        "label": "Finished Goods"
       }
      }
     },
     "localname": "InventoryFinishedGoods",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryLIFOReservePeriodCharge": {
     "auth_ref": [
      "r55"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The change in the inventory reserve representing the cumulative difference in cost between the first in, first out and the last in, first out inventory valuation methods, which change has been reflected in the statement of income during the period.",
        "label": "Inventory Reserve"
       }
      }
     },
     "localname": "InventoryLIFOReservePeriodCharge",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r167",
      "r449",
      "r464"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventories (Note 3)",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r156",
      "r166",
      "r210",
      "r257",
      "r258",
      "r259",
      "r404",
      "r452"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
        "label": "Inventories"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterials": {
     "auth_ref": [
      "r482"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Raw Materials"
       }
      }
     },
     "localname": "InventoryRawMaterials",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryValuationReserves": {
     "auth_ref": [
      "r56",
      "r483"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of valuation reserve for inventory.",
        "label": "[Inventory Valuation Reserves]",
        "negatedLabel": "Inventory Reserve",
        "verboseLabel": "Inventory Reserve"
       }
      }
     },
     "localname": "InventoryValuationReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims": {
     "auth_ref": [
      "r35"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of share-based compensation granted to nonemployees as payment for services rendered or acknowledged claims.",
        "label": "Value of Equity Issued for Services"
       }
      }
     },
     "localname": "IssuanceOfStockAndWarrantsForServicesOrClaims",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "auth_ref": [
      "r545"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.",
        "label": "Lease Expense"
       }
      }
     },
     "localname": "LeaseCostTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LeaseholdImprovementsGross": {
     "auth_ref": [
      "r70"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated depreciation of additions or improvements to assets held under a lease arrangement.",
        "label": "Leasehold Improvements"
       }
      }
     },
     "localname": "LeaseholdImprovementsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "LEASES"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LeasesOfLesseeDisclosureTextBlock": {
     "auth_ref": [
      "r150"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing.",
        "label": "Leases of Lessee Disclosure [Text Block]",
        "verboseLabel": "LEASES"
       }
      }
     },
     "localname": "LeasesOfLesseeDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LEASES"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r393"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
        "label": "Leases"
       }
      }
     },
     "localname": "LesseeLeasesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseDiscountRate": {
     "auth_ref": [
      "r463"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discount rate used by lessee to determine present value of operating lease payments.",
        "label": "Discount Rate: Operating Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseDiscountRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails2"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Total Minimum Lease Payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth 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).",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, after Year Five]",
        "verboseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year One]",
        "verboseLabel": "December 31, 2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth 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).",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Five]",
        "verboseLabel": "December 31, 2027"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Four]",
        "verboseLabel": "December 31, 2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Three]",
        "verboseLabel": "December 31, 2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Two]",
        "verboseLabel": "December 31, 2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r394"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
        "label": "Less: Interest"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock": {
     "auth_ref": [
      "r546"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of maturity of undiscounted cash flows to be received by lessor on annual basis for operating lease.",
        "label": "Maturities of Lease Payments"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r18",
      "r183",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r375",
      "r376",
      "r377",
      "r382",
      "r456",
      "r505",
      "r550",
      "r551"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 25.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "[Liabilities]",
        "totalLabel": "Total Liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities"
       }
      }
     },
     "localname": "LiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r13",
      "r118",
      "r130",
      "r464",
      "r490",
      "r501",
      "r543"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "[Liabilities and Equity]",
        "totalLabel": "Total Liabilities and Shareholders' Equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "LIABILITIES AND SHAREHOLDERS' EQUITY"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r20",
      "r155",
      "r183",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r375",
      "r376",
      "r377",
      "r382",
      "r464",
      "r505",
      "r550",
      "r551"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 19.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "[Liabilities, Current]",
        "totalLabel": "Total Current Liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Liabilities:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "auth_ref": [
      "r2",
      "r3",
      "r4",
      "r5",
      "r6",
      "r183",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r375",
      "r376",
      "r377",
      "r382",
      "r505",
      "r550",
      "r551"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 20.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer.",
        "label": "[Liabilities, Noncurrent]",
        "totalLabel": "Total Long-Term Liabilities"
       }
      }
     },
     "localname": "LiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesNoncurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Liabilities:"
       }
      }
     },
     "localname": "LiabilitiesNoncurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NatureOfOperations": {
     "auth_ref": [
      "r214",
      "r220"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.",
        "label": "Nature of Operations [Text Block]",
        "verboseLabel": "DESCRIPTION OF BUSINESS"
       }
      }
     },
     "localname": "NatureOfOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/DescriptionOfBusiness"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r180"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
        "label": "[Net Cash Provided by (Used in) Financing Activities]",
        "totalLabel": "Net Cash From Financing Activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow From Financing Activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r180"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 11.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
        "label": "[Net Cash Provided by (Used in) Investing Activities]",
        "totalLabel": "Net Cash (Used) in Investing Activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow From Investing Activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r32",
      "r33",
      "r36"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 10.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
        "label": "[Net Cash Provided by (Used in) Operating Activities]",
        "totalLabel": "Net Cash Provided (Used) in Operating Activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow From Operating Activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r23",
      "r36",
      "r122",
      "r133",
      "r153",
      "r170",
      "r171",
      "r175",
      "r183",
      "r190",
      "r192",
      "r193",
      "r194",
      "r195",
      "r198",
      "r199",
      "r204",
      "r231",
      "r235",
      "r241",
      "r243",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r381",
      "r382",
      "r457",
      "r505"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "[Net Income (Loss) Attributable to Parent]",
        "terseLabel": "Net Income (Loss)",
        "totalLabel": "Net Income (loss)",
        "verboseLabel": "Net (Loss)"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (loss) Attributable To Common Shareholders Per Share:"
       }
      }
     },
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasicAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Recent Accounting Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Cash Investing and Financing Activities:"
       }
      }
     },
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "auth_ref": [
      "r28"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 16.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).",
        "label": "[Nonoperating Income (Expense)]",
        "totalLabel": "Total Other Income (Expense)"
       }
      }
     },
     "localname": "NonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 11.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "[Operating Expenses]",
        "totalLabel": "Total Operating Expenses"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r231",
      "r235",
      "r241",
      "r243",
      "r457"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 15.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net result for the period of deducting operating expenses from operating revenues.",
        "label": "[Operating Income (Loss)]",
        "totalLabel": "Income (loss) from Operations"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r544"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease expense. Excludes sublease income.",
        "label": "Operating Lease Expense"
       }
      }
     },
     "localname": "OperatingLeaseExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm": {
     "auth_ref": [
      "r395"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease initial direct cost recognized as expense over lease term.",
        "label": "Cash Paid For Amounts Included In The Measurement Of Lease Liabilities:"
       }
      }
     },
     "localname": "OperatingLeaseInitialDirectCostExpenseOverTerm",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r392"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "[Operating Lease, Liability]",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r392"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 17.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Current Portion of Long-Term Operating Lease",
        "terseLabel": "Less: Current Portion",
        "verboseLabel": "Current Portion Of Long-term Operating Lease"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r392"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 18.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Long-Term Operating Lease, Net of Current Portion (Note 7)",
        "terseLabel": "Long-term Portion Of Lease Obligations",
        "verboseLabel": "Long-term Operating Lease, Net Of Current Portion"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r391"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 9.0,
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating Lease - Right of Use Asset (Note - 7)",
        "verboseLabel": "Operating Lease Right Of Use Asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "auth_ref": [
      "r488"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense for right-of-use asset from operating lease.",
        "label": "Amortization of Right of Use Asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesRentExpenseNet": {
     "auth_ref": [
      "r147"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.",
        "label": "Annual Rent Lease"
       }
      }
     },
     "localname": "OperatingLeasesRentExpenseNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLossCarryforwards": {
     "auth_ref": [
      "r100"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.",
        "label": "Net Operating Loss Carryforwards"
       }
      }
     },
     "localname": "OperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OptionIndexedToIssuersEquityEquityAxis": {
     "auth_ref": [
      "r83",
      "r107",
      "r108",
      "r109"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of options indexed to an issuer's equity.",
        "label": "Option Indexed To Issuers Equity Equity Axis"
       }
      }
     },
     "localname": "OptionIndexedToIssuersEquityEquityAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OptionIndexedToIssuersEquityTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of the type of freestanding contract issued by a Company that is indexed to, and potentially settled in, a Company's own stock. Specifically, the pertinent rights and privileges of the securities outstanding."
       }
      }
     },
     "localname": "OptionIndexedToIssuersEquityTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "DESCRIPTION OF BUSINESS"
       }
      }
     },
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r120",
      "r132"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses incurred but not yet paid classified as other.",
        "label": "Other Accrued Expenses"
       }
      }
     },
     "localname": "OtherAccruedLiabilitiesCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssets": {
     "auth_ref": [
      "r116",
      "r127",
      "r160"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 13.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of assets classified as other.",
        "label": "[Other Assets]",
        "totalLabel": "Total Other Assets"
       }
      }
     },
     "localname": "OtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets:"
       }
      }
     },
     "localname": "OtherAssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r160"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 11.0,
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other Assets"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherDepreciationAndAmortization": {
     "auth_ref": [
      "r26",
      "r35",
      "r69"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense charged against earnings to allocate the cost of tangible and intangible assets over their remaining economic lives, classified as other.",
        "label": "[Other Depreciation and Amortization]",
        "verboseLabel": "Depreciation and Amortization"
       }
      }
     },
     "localname": "OtherDepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r27"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 9.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of general and administrative expense classified as other.",
        "label": "General and Administrative"
       }
      }
     },
     "localname": "OtherGeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Income (Expense):"
       }
      }
     },
     "localname": "OtherIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherReceivablesNetCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance, of receivables classified as other, due within one year or the operating cycle, if longer.",
        "label": "Other Receivables"
       }
      }
     },
     "localname": "OtherReceivablesNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentForManagementFee": {
     "auth_ref": [
      "r487",
      "r547"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount paid to managing member or general partner for management of the day-to-day business functions of the limited liability company (LLC) or limited partnership (LP).",
        "label": "Increased annual fee"
       }
      }
     },
     "localname": "PaymentForManagementFee",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForProceedsFromTenantAllowance": {
     "auth_ref": [
      "r29",
      "r30"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net cash outflow or inflow from monetary allowance granted by the landlord to a tenant to entice tenant to move into landlords building which will enable the tenant to prepare the leased premises for tenants occupancy.",
        "label": "Landlord Tenant Improvement Allowance"
       }
      }
     },
     "localname": "PaymentsForProceedsFromTenantAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r510",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name Axis"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [
      "r510",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r7",
      "r293"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Cumulative Convertible Preferred Stock; Par Value",
        "verboseLabel": "Cumulative Convertible Preferred Stock; Par Value"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
        "label": "Cumulative Convertible Preferred Stock; Shares Authorized",
        "terseLabel": "Preferred stock shares",
        "verboseLabel": "Preferred Stock Shares"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r7",
      "r293"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.",
        "label": "Cumulative Convertible Preferred Stock; Shares Issued",
        "verboseLabel": "Cumulative Convertible Preferred Stock; Shares Issued"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.",
        "label": "Cumulative Convertible Preferred Stock; Shares Outstanding",
        "verboseLabel": "Cumulative Convertible Preferred Stock; Shares Outstanding"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r7",
      "r464"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 21.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Cumulative Convertible Series A Preferred Stock; par value $0.01 per share, 1,000,000 shares authorized; 63,750 shares issued and outstanding at December 31, 2022 and December 31, 2021"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssets": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets.",
        "label": "Prepaid expenses and other assets"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "auth_ref": [
      "r168",
      "r260",
      "r261",
      "r450"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Prepaid Expenses"
       }
      }
     },
     "localname": "PrepaidExpenseCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "auth_ref": [
      "r477"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.",
        "label": "Reclassification of Accounts"
       }
      }
     },
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfWarrants": {
     "auth_ref": [
      "r31"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from issuance of rights to purchase common shares at predetermined price (usually issued together with corporate debt).",
        "label": "Proceeds from Issuance of Stock and Warrants",
        "verboseLabel": "Proceeds from issuance of warrants"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfWarrants",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r31",
      "r95"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.",
        "label": "Proceeds from Exercise of Options and Warrants"
       }
      }
     },
     "localname": "ProceedsFromStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease": {
     "auth_ref": [
      "r76"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the standard and extended product warranty liability.",
        "label": "Provision For Warranty Expense"
       }
      }
     },
     "localname": "ProductWarrantyAccrualPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProfessionalFees": {
     "auth_ref": [
      "r137",
      "r138"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A fee charged for services from professionals such as doctors, lawyers and accountants. The term is often expanded to include other professions, for example, pharmacists charging to maintain a medicinal profile of a client or customer.",
        "label": "Professional Fees"
       }
      }
     },
     "localname": "ProfessionalFees",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "PROPERTY AND EQUIPMENT"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r72"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Property Plant And Equipment By Type Axis"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r73",
      "r433",
      "r434",
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "verboseLabel": "PROPERTY AND EQUIPMENT"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipment"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r70",
      "r157"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property And Equipment, Gross"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r72",
      "r131",
      "r422",
      "r464"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Property and Equipment - net (Note 5)",
        "verboseLabel": "Property And Equipment, Net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r72",
      "r433",
      "r434"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r72"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "verboseLabel": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r70"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r179",
      "r255"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Bad Debt Expense"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period end book value of vehicles owned by the public utility.",
        "label": "Vehicles"
       }
      }
     },
     "localname": "PublicUtilitiesPropertyPlantAndEquipmentVehicles",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesPolicyTextBlock": {
     "auth_ref": [
      "r497",
      "r498",
      "r499",
      "r500"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for receivable. Includes, but is not limited to, accounts receivable and financing receivable.",
        "label": "Receivable [Policy Text Block]",
        "verboseLabel": "Accounts Receivable"
       }
      }
     },
     "localname": "ReceivablesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RelatedPartyDomain": {
     "auth_ref": [
      "r310",
      "r397",
      "r398"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests."
       }
      }
     },
     "localname": "RelatedPartyDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "auth_ref": [
      "r310",
      "r397",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r549"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.",
        "label": "Related Party Transactions By Related Party Axis"
       }
      }
     },
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r96",
      "r141",
      "r558"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 7.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.",
        "label": "Research and Development"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "auth_ref": [
      "r96"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.",
        "label": "Research and Development Expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock": {
     "auth_ref": [
      "r143"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for research, development, and computer software activities, including contracts and arrangements to be performed for others and with federal government. Includes costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility and in-process research and development acquired in a business combination consummated during the period.",
        "label": "Research, Development, and Computer Software Disclosure [Text Block]",
        "verboseLabel": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS"
       }
      }
     },
     "localname": "ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "auth_ref": [
      "r67",
      "r68",
      "r141"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.",
        "label": "Capitalized Software Development Costs"
       }
      }
     },
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r10",
      "r85",
      "r129",
      "r429",
      "r430",
      "r464"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 23.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Accumulated Deficit"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r151",
      "r187",
      "r188",
      "r189",
      "r191",
      "r197",
      "r199",
      "r252",
      "r341",
      "r342",
      "r343",
      "r361",
      "r362",
      "r379",
      "r426",
      "r428"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings (Accumulated Deficit)"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r453",
      "r454"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.",
        "label": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueRecognitionPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Revenues": {
     "auth_ref": [
      "r177",
      "r183",
      "r222",
      "r223",
      "r234",
      "r239",
      "r240",
      "r244",
      "r245",
      "r247",
      "r251",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r382",
      "r421",
      "r505"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).",
        "label": "Sales, net",
        "verboseLabel": "Sales, net"
       }
      }
     },
     "localname": "Revenues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RisksAndUncertaintiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CLOUD COMPUTING SERVICE CONTRACT"
       }
      }
     },
     "localname": "RisksAndUncertaintiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SalariesAndWages": {
     "auth_ref": [
      "r485"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for salary and wage arising from service rendered by nonofficer employee. Excludes allocated cost, labor-related nonsalary expense, and direct and overhead labor cost included in cost of good and service sold.",
        "label": "Base annual salary"
       }
      }
     },
     "localname": "SalariesAndWages",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the (a) 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 (accounts payable); (b) other payables; and (c) accrued liabilities. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer). An alternative caption includes accrued expenses.",
        "label": "Accrued Expenses and Other Current Liabilities"
       }
      }
     },
     "localname": "ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r102"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
        "label": "Income Tax Expense"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r99"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
        "label": "Deferred Income Tax Assets (Liabilities)"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r98"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r59",
      "r62"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Definite Life Intangible Assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "auth_ref": [
      "r491"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.",
        "label": "Net Income (Loss) Before Income Tax"
       }
      }
     },
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": {
     "auth_ref": [
      "r60",
      "r105"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of characteristics and cost, by total and major class, of indefinite-lived intangible assets acquired as part of a business combination. Indefinite-lived intangible assets are assets that have no physical form, but have expected future economic benefit. The future benefit is not expected to diminish over a stated period of time. Acquired indefinite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the entity) and in total.",
        "label": "Indefinite Life Intangible Assets"
       }
      }
     },
     "localname": "ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r0",
      "r14",
      "r15",
      "r16"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "verboseLabel": "Inventories"
       }
      }
     },
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/InventoriesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "auth_ref": [
      "r78"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.",
        "label": "Warranty Reserve Activity"
       }
      }
     },
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in stock options.",
        "label": "Stock Options Outstanding"
       }
      }
     },
     "localname": "ScheduleOfStockOptionsRollForwardTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock": {
     "auth_ref": [
      "r86",
      "r89"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable.",
        "label": "Stock Warrants Outstanding"
       }
      }
     },
     "localname": "ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r62"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.",
        "label": "Approximate Future Amortization"
       }
      }
     },
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentDomain": {
     "auth_ref": [
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r239",
      "r240",
      "r241",
      "r242",
      "r243",
      "r247",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r276",
      "r277",
      "r458",
      "r559"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "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."
       }
      }
     },
     "localname": "SegmentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SellingExpense": {
     "auth_ref": [
      "r27"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations": {
       "order": 6.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expenses recognized in the period that are directly related to the selling and distribution of products or services.",
        "label": "Selling Expenses"
       }
      }
     },
     "localname": "SellingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "auth_ref": [
      "r479",
      "r480",
      "r508"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Series A preferred stock.",
        "label": "Cumulative Convertible Series A Preferred Stock"
       }
      }
     },
     "localname": "SeriesAPreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SeriesBPreferredStockMember": {
     "auth_ref": [
      "r479",
      "r480",
      "r508"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Series B preferred stock.",
        "label": "Cumulative Convertible Series B Preferred Stock"
       }
      }
     },
     "localname": "SeriesBPreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Share based compensation expense"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Options"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.",
        "label": "Exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r338"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.",
        "label": "Expected dividend yield"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r337"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.",
        "label": "Volatility rate"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r339"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.",
        "label": "Risk free interest rate"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "auth_ref": [
      "r91",
      "r92"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments.",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number]",
        "verboseLabel": "Outstanding, Beginning Balance"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r318"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.",
        "label": "Number of Exercisable Options",
        "verboseLabel": "Exercisable Warrants"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r318"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.",
        "label": "Weighted Average Exercise Price, Exercisable Options",
        "verboseLabel": "Weighted Average Exercise Price, Exercisable"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "auth_ref": [
      "r516"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For presentations that combine terminations, 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 or that expired.",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period]",
        "negatedLabel": "Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price [Abstract]",
        "verboseLabel": "Weighted Average Exercise Price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "auth_ref": [
      "r320"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gross number of share options (or share units) granted during the period.",
        "label": "Granted",
        "verboseLabel": "Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r316",
      "r317"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Outstanding, Beginning Balance",
        "periodEndLabel": "Outstanding, end of period",
        "periodStartLabel": "Outstanding, beginning of period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r316",
      "r317"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price]",
        "periodEndLabel": "Weighted average exercise price, end of period",
        "periodStartLabel": "Weighted average exercise price, beginning of period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": {
     "auth_ref": [
      "r93"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. 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.",
        "label": "Options Outstanding and Exercisable by Price Range"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r312",
      "r313",
      "r314",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r321"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price]",
        "verboseLabel": "Weighted average exercise price, Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r323"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.",
        "label": "[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price]",
        "negatedLabel": "Weighted average exercise price, Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r320"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price]",
        "verboseLabel": "Weighted average exercise price, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r315",
      "r334",
      "r335",
      "r336",
      "r337",
      "r340",
      "r344",
      "r345"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "verboseLabel": "Equity Compensation Expense"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r336"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Expected life term"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r94"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Average Weighted Remaining Contractual Life in Years, Outstanding",
        "verboseLabel": "Average Weighted Remaining Contractual Life in Years"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharesIssued": {
     "auth_ref": [
      "r84"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury.",
        "label": "[Shares, Issued]",
        "periodEndLabel": "Balance, shares",
        "periodStartLabel": "Balance, shares"
       }
      }
     },
     "localname": "SharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r45",
      "r181"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Significant Accounting Policies [Text Block]",
        "verboseLabel": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SoftwareDevelopmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Internally developed software for sale, licensing or long-term internal use.",
        "label": "Software Development [Member]"
       }
      }
     },
     "localname": "SoftwareDevelopmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "auth_ref": [
      "r152",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r239",
      "r240",
      "r241",
      "r242",
      "r243",
      "r247",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r274",
      "r276",
      "r277",
      "r458",
      "r559"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business segments.",
        "label": "Statement Business Segments Axis"
       }
      }
     },
     "localname": "StatementBusinessSegmentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r162",
      "r163",
      "r164",
      "r183",
      "r202",
      "r203",
      "r205",
      "r207",
      "r212",
      "r213",
      "r251",
      "r284",
      "r286",
      "r287",
      "r288",
      "r291",
      "r292",
      "r293",
      "r294",
      "r296",
      "r300",
      "r306",
      "r382",
      "r448",
      "r476",
      "r489",
      "r495"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by the different classes of stock of the entity.",
        "label": "Statement Class Of Stock Axis"
       }
      }
     },
     "localname": "StatementClassOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r21",
      "r84",
      "r151",
      "r173",
      "r174",
      "r175",
      "r187",
      "r188",
      "r189",
      "r191",
      "r197",
      "r199",
      "r211",
      "r252",
      "r308",
      "r341",
      "r342",
      "r343",
      "r361",
      "r362",
      "r379",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r396",
      "r426",
      "r427",
      "r428"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Statement Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r187",
      "r188",
      "r189",
      "r211",
      "r405"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "auth_ref": [
      "r7",
      "r8",
      "r84",
      "r85"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan.",
        "label": "Aggregate shares purchase of stock option"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "auth_ref": [
      "r7",
      "r8",
      "r84",
      "r85"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of new stock issued during the period.",
        "label": "Common Stock Issued in Private Placement, shares",
        "terseLabel": "Issued shares of common stock during period",
        "verboseLabel": "Common stock share issued"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueIssuedForServices": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued in lieu of cash for services contributed to the entity. Value of the stock issued includes, but is not limited to, services contributed by vendors and founders.",
        "label": "Issued shares of common stock during period, value"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueIssuedForServices",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "auth_ref": [
      "r7",
      "r8",
      "r84",
      "r85"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.",
        "label": "Common Stock Issued in Private Placement, amount"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contracts conveying rights, but not obligations, to buy or sell a specific quantity of stock at a specified price during a specified period (an American option) or at a specified date (a European option).",
        "label": "Stock Option [Member]"
       }
      }
     },
     "localname": "StockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "auth_ref": [
      "r7",
      "r8",
      "r84",
      "r85"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Option to purchase"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r8",
      "r11",
      "r12",
      "r54",
      "r464",
      "r490",
      "r501",
      "r543"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 26.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "[Stockholders' Equity Attributable to Parent]",
        "periodEndLabel": "Balance, amount",
        "periodStartLabel": "Balance, amount",
        "totalLabel": "Total Shareholders' Equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shareholders' Equity:",
        "verboseLabel": "Stockholders' Equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r87",
      "r182",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r305",
      "r308",
      "r378"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.",
        "label": "SHAREHOLDERS' EQUITY"
       }
      }
     },
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquity"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r389",
      "r400"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event"
       }
      }
     },
     "localname": "SubsequentEventMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r389",
      "r400"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type Axis"
       }
      }
     },
     "localname": "SubsequentEventTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r389",
      "r400"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "localname": "SubsequentEventTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SUBSEQUENT EVENTS"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r399",
      "r401"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Subsequent Events [Text Block]",
        "verboseLabel": "SUBSEQUENT EVENTS"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information:"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r50",
      "r51",
      "r52",
      "r215",
      "r216",
      "r218",
      "r219"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of Estimates"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_WarrantsAndRightsOutstanding": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of outstanding derivative securities that permit the holder the right to purchase securities (usually equity) from the issuer at a specified price.",
        "label": "Warrant issued"
       }
      }
     },
     "localname": "WarrantsAndRightsOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r201",
      "r207"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Diluted Weighted Average Common Shares Outstanding",
        "verboseLabel": "Diluted"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r200",
      "r207"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Basic Weighted Average Common Shares Outstanding",
        "terseLabel": "Basic Weighted-average Shares",
        "verboseLabel": "Basic"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WorkersCompensationDiscountPercent": {
     "auth_ref": [
      "r135",
      "r136"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percent discount applied to worker's compensation reserve liability to reduce the reserve to present value.",
        "label": "Discount Rate"
       }
      }
     },
     "localname": "WorkersCompensationDiscountPercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    }
   },
   "unitCount": 5
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(19)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4922-128472",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=d3e90193-114008",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=d3e90198-114008",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=d3e90205-114008",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61901-109447",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.12)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.14)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Subparagraph": "(b)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=123398031&loc=d3e60009-112784",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126941378&loc=d3e61044-112788",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(10))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.15(a))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=116884095&loc=d3e14754-158437",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=d3e14931-158439",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "220",
   "Subparagraph": "(k)",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=124433917&loc=SL114874205-224268",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.6-07.2(a),(b),(c),(d))",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=120401555&loc=SL114874292-224272",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128487-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "730",
   "Topic": "985",
   "URI": "https://asc.fasb.org/subtopic&trid=2197926",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "https://asc.fasb.org/extlink&oid=123406913&loc=d3e41499-112717",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "840",
   "URI": "https://asc.fasb.org/extlink&oid=123406127&loc=d3e45023-112735",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "840",
   "URI": "https://asc.fasb.org/extlink&oid=123386454&loc=d3e45280-112737",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "840",
   "URI": "https://asc.fasb.org/topic&trid=2208923",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(16))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(17))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(18))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(7))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18726-107790",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(24))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1278-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e543-108305",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "https://asc.fasb.org/topic&trid=2134479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8657-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(j)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "https://asc.fasb.org/topic&trid=2126998",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.3)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Topic": "340",
   "URI": "https://asc.fasb.org/extlink&oid=126905020&loc=d3e5879-108316",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "340",
   "URI": "https://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/subtopic&trid=2144471",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(25))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496180-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(n)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "https://asc.fasb.org/topic&trid=2228938",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(a)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(b)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "https://asc.fasb.org/topic&trid=2144680",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=SL126733271-114008",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3095-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918666-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123408481&loc=SL77919140-209958",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(26))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "https://asc.fasb.org/topic&trid=2122774",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61929-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61929-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4304-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62059-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62059-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62395-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62395-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "33",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62479-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "33",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62479-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "35A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=SL6807758-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "35A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=SL6807758-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(c)(1)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61872-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(c)(2)",
   "Topic": "932",
   "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61872-109447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4313-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4332-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r448": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "https://asc.fasb.org/topic&trid=2122369",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r467": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r468": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r469": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r470": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r471": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r472": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r473": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r474": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r475": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054",
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=124429488&loc=d3e326-107755",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(8))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(4))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(b)(2))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "55",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2626-109256",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=84159169&loc=d3e10149-111534",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=84159169&loc=d3e10178-111534",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "410",
   "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "https://asc.fasb.org/topic&trid=2127136",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "https://asc.fasb.org/topic&trid=2134479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=124258985&loc=SL77919396-209981",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.L)",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=27011343&loc=d3e99989-122729",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "730",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.BB)",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(23))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "40",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "50",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "https://asc.fasb.org/topic&trid=2155823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "https://asc.fasb.org/topic&trid=2144648",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1),(c)(5)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "460",
   "URI": "https://asc.fasb.org/topic&trid=2155896",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "40",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126972273&loc=d3e12317-112629",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "40",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126972273&loc=d3e12355-112629",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=7516071&loc=d3e13374-112631",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "63",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "480",
   "URI": "https://asc.fasb.org/extlink&oid=126970277&loc=d3e23176-110880",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "50",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=6784392&loc=d3e188667-122775",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "https://asc.fasb.org/topic&trid=2208762",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409961&loc=d3e20487-108367",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  }
 },
 "version": "2.2"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>100
<FILENAME>0001654954-23-003029-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001654954-23-003029-xbrl.zip
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
M:;<YK;4,(Y'IB0E)$@R/JETZ>>P*'9SP236"24 :#)6B?3[1D&J.(*T@H4B
M85!_*""D?%U5OE.THMW[/N<M+^2$1>!,Y5S957X^*I83=4ILK!$.1/XQ (HV
M[2BION^):+_:4B/55YG'>E>TZS86BT17ECNQG,70RR[)&,<C- *-4*#*H/B=
MSQ0][?? PK0"#Z[90L.VXTWLHL>C ZA/VV',$2*T&D$D(@Y&2]5K$FHA+)$9
M7"LT2.QC[:O?@1.O:_:_O=(*&;XP&*?M5KPK3^#)]?QR[^$O]GD/W_MKH=\?
MCN_CC^_CC^_C7_;[>%41D\?W\<7W\7KF*7BQ[^,OCN_CN_H,F_T^7E6(\?%]
M/.=]O*K@W^.A,3,03_F1)=QRC(-$I$5RK#<!09*86.@4DTZL$4Q"\JA]*)]C
M,>$G-.)H[0?H/8 03E4B/?&IRJ'VK7R%M6$8QK4PP00ZXX%E4/N8OL+6.(["
MR/+00[4:@!2H=$:E((CR%_:YA4G]&4>47B.X1$5J]"B_FI$9_88#!P$&1,4C
MTD'W(G*H?I>?YTY\KN?1Z8".H"AJ7^>3N.--^BP:S8$I3?V*(@%(G G-_EQ"
MS>$AK0%V1X8*;].V4H7C91;H"?]*NDE[+W:3-IO#_[LQ1_-9;WS5&T_,J3$?
MP@9R4HMS)*)?Z>8E^["/9+/YN/^_7\?7 W,Z^TO/_-?M</[K\9[P>$_XDNX)
MTR&#RL?Y7I)04NRND$RFYWTA61;%=U4EIGC7593FW;HY9-E:"1R*/(H#[]H
MI8O7B$V!.4"V;<KVFGA-%E+OHA -FT3](I1I9/G=-5L0Q>\.<T=DO)M!0E--
M4* +H/C=(25RF8<$ATPO5#C"*'YZ6 Y<YD%#:Z\7)C0I%#\N%#M:TO8PB7A\
M=(R&5Q@-O]^T0%D#[08@7/>E]=3(*Q]20QWT2>.]T7TT19FYN3P=,"C77UI3
M/9P$_H.S@ NM9#Q1E%RG UV47T>F1A?3#4 Q-BC)4 -0< <O"10LD]HKZ1R/
M@SB \_X$[ES\S&)&X#'Y$_/428Q>!^1JBJ0V3SR%R^3V=G_<RN3ZPU:62.V]
M]@A$:87M:S]DH%-JIA$*)<X;75)39ISOJ&PV.@GS%N/[Y+[,? *![82<V5^
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
ME'J[C-D[R)VRR/ZO@G]9D:7;WQ\[JLHN. MQ=>:]P>>NKFQ X(#0F,#>0!"
M1>+,J&C@P<DB4G\43Y^0RFL;EAS8JZBZ:$YXN]P'& J1=L!0Y,# M!HS/PF<
M!SCC3%S+3F-LF*%#U-8*=;S/\5U1^4S)L-9;#8O??L98P?^P54YLJK^^B6)A
M9;<:\_Y/RXNMX'G^"#^T_2_[N0Z;1+U#H9R8Y!7,%@$KNM5@=L(G>8_4V"2Z
M*KKZZNQ3JR'J_;4#EF.XJ8 #SEN-ETO'!@';<[-)M'<G;/$P".W6O$%S<Q:;
MP%0]J:%ZR^:O26B\8VVV&E5>&D6UW+/6CKGBDE7EH]HAS5UM5YNJU[SX&KO*
MO8+=_PU4T";>L/;_I29J?33AM"*W^2^QBO79YA:2IT_KB:O/8I-.Z[/(*M9G
MJSN_OK_9^%XR&I+8M9GOTO):DYNJ'_-BR:C)W,NH<3X,PQ@L\/N2H=?W/3N&
M^W@O*F\O*8JNTX$NZJ\C4Z. \_J@%/:@]2$ID;\ 0$H2R<C,CUZSP'DZ_P0&
MO\?R)W%@KZV0%*>):,5(=8%!3!H9!:>3)*E7EA-\L]P8;KPF($@<(T7M].:Z
MJ)HN@=KL[I/ MP%8A%=0+#0J+<\&VP)1C!@+'IT.N B*TJA2,L7^"^\%MA^C
M6#^ML0XZ9O$OHPQPUKD!F5H@Q@8@M ,GV6I1M,NDT$7%3"$:93NGZ-E8K0*P
M@JSUK7 -I^_068 THRM%S2P"7;3,DJ%1*F_.B_ITN71[[WMX5D[FCO$RMZ]@
M6[=@%[H 44\JQ4FMBU>I"8.A$4=K/W#^!(PZ.SPZ'< 2%$5Q84D2>ZEIU4,'
MTVB.#!8#HZ+H\36)M=Q6I1XT!4+-\2G(@D%2],ZYR-_$"L9!(MLBV><PMG5$
M^>CTVD)&%PDCIZB"')Y##6^1E $6&UML*HU08@N"L5%5<PU93NJ&!W$ .4IK
M)*3#?P0>DS\Q7T"(T6N$EZA(&+G]MNO-(_)W"\]DN-,QJK;4"(TJ\UCONM5S
MVY[)&=" -MOR),!&#MM' 2"N$SU/H5X8P^T0']?(.@ZB#VQP72WBMH^, Q1]
M!.",='AS*W[ZM1M;41O8U+I:IZV.A%,G_/TJ &#H10#.G-$!38W\Z==J:F1M
MJ"XMPUIEF9M[UW\&(-W79 =N*-GEOBM15H<ZF<6^,DJI!Y&[9,S%F5&.AVF-
M== ^B_]FQ1T:#Z-!=@) <1,HN'@7:IQ%6I72;9[1QU0[O>L <:L"-ZLN(6D6
MKSOU:H4;381F=274)3IFK1@Y8U;F-W6S"$EJ:%8=HUNK=-E)/@6^J9M525)#
MI<#'87)YXND+G4\;*[A-2%Z$9EDXMVK(I?$\+Z?Q[(]'\ZG1G\]ZQFC0,[Y,
M3?/&',$?<2[/'[82'8IO9A[2B]H"').1'I.1:I",M,YM:E8Y@IW?JMA*C[0Q
M1-95!^8(UB_M9.U:DJE0E%U*5J7J;&D_=7<A[\R^*L]GH;GH4$ZJ8_[C8_[C
M8_YC/2#L@O_3.O\Q_06&':.]PVZ7@EC]:KD+X,W@=I&3-J0&O?J=-+\B60UQ
MI-Q:4+YONDX86O_<&PX2O<9PD,214L?ZTD=53Y;I-]BY1<A-M4_G0A9+2H5J
M%$SE1!$ _;7E!'#Q$S(28.#GY#0"[17/$D[QQ4&6X",+'1T'2>!H6F]JO)S!
M$1M 58.P;[DN6%P^XQ#3K"%C1]^X8_4^33QTL*FL,M(FH"N$\7+K;"GCKM)*
M![43&5=<5L]RK23]I[?X;JV8@<R5ECJHG,J\VIITQ)$G%/7/I]0(%KXPC3(>
M''J6,2U[76S;VCQ#ZEIWH.M)JS@Y0WI5>>4'-Y9GI5>95X#UFHI&H!%J5!D:
MY6$X/LE1_B1'U<L0,I?)M7_Z:VAJ,Q \./8>^-&ZT1]&FF3E;!*'B8<P;#N
MG*"0'R],EE3C: V"?IHUZMJQ[M#3$.C-&2$2[\L1!D:_/[TU!SWSEXDYFIEI
MH,%X_M6<]OJWTZDYFO>NA\;E\'HX'YJ2 R<R ;,)Z)DAQ@>:&-^-Z=08Y:JU
M2F%TZ,%_@KGUQ-3UQS*3PU%_?&/VYL8OLC599?",Q.$G(0Y[9P?B\9S$XX]B
M/)X?B,<+$H^?Q7B\.!"/K!BC3^_$>,W%%<D(D8I#^ OHNWS/!BA:"G4HPGVE
M4G/_=C:'[$]1J%3?1-%2\^%X=(R/.L9'Z10?Q4VK^V\_P&,FI$<JD-II$Z9
M8EY&=!1'U^A2:KPL,,.ZRF8T5QYW0#>;G-H9 BB($&E+^QT)&6B&P %BIRAW
M 6,/8%:8MW"$=FHOW[CVD[\2('#?+ L7[6;ET1?2)J&=1MHD<-\L>Q9-F_"O
M8M9);*F31DG\*TYV55BQH_?;$[@"@+^P5H#Q](M-I=%!$5N0\K7L8<Z%9O%=
M"/Z((1?F@^!+DT^5IS*SV\N9^:];=-YC?CL^,3ENH73;0M6 )PG&0:_@@NAY
M'EA>:-E);,[E<_XO[ <H=?K08PNVAV"*'Z_D&>*]J""U[<0CEOK&R "L(\]<
MF@'3A;V;/'"4/8BI,W\55Q1S^"FV-Z02:.7ZJ%+(>&?1# [>J&*0=,+K<2R,
M#TS)T[U_ =!TR.^U!$_>UWWHT.._I$[I]GU!5J>45;2.2:!^^TJ?;W/'C$P9
ML(=356Z^:$'<TI?DYNJ!X+H#]L@IH]%F;++(D"B7[N4."1J!>B3$AP1-!@Q"
MFP=M(B!<.9[EV8[EBH) (] )!)H,&(0VXY Y(&2OG@9. &S88YB\P=E8].=(
MD(A'HPD4/#$P&HIB@8G!S.3*6MNW,JQ#Z?VZ4X]EL^AOOH2-7A>U$ZPZ!?=9
MGE!"7"WK0)5/JQ%^(N+(*-::RR.:A,#2*A(3VNF@70KK,NJLYCZ#'J#Q]9BV
MTE"+*>,R"J7NLMY3U)=OH(OF\CPW>F%#3290S.+^JP.HA<4I;751)85]&35+
M!3/'H[;Z9GJG<R^C6FE2%7@ N]\FHL3EH41J.PI3ZZ)X88$:531M(PSD 03H
M+#'+.IXOF\<.!&'2Z0"3H"B-JJ&V#Y"Q\6,OJ@]0B4YG@$JB*+Z]/B;([VZ"
M_#-N"%?V>_0?E*C[[_\/4$L#!!0    ( 'N <%9;/'2"9',  "\3!@ 5
M=&]M>BTR,#(R,3(S,5]L86(N>&UL[+WK<N0VEB[Z_T2<=\#VV1%C1ZCLO%\\
M,WM'EBYNS50I-9+*GMZ.$QU,$I0X3I%JDJDJ]=,?7$@F25P(,DD \IP?,UU6
MK@5^ #[<%A;6^I?__>UY#UYAG 11^*_?C7\<?0=@Z$9>$#[^ZW>'Y(.3N$'P
M'4A2)_2<?13"?_WN#2;?_>__]7__7__R/SY\^,^/=Y_ 1>0>GF&8@O,8.BGT
MP-<@?0+XI\].DL+XPX=,^E?ZG9_!Y,?ICZ-5\?>/3H*THI#HH!_'Q2\7J#P0
M^<#%)1/5T?2G\>*GR6@R+83N(S_]ZL00.+'[%*3030^QLP<>3(+'$"#@@%;H
M9[#Y)Q=</#GQL_,2PV<GQ)4"F]?TQZ*L\^CE+0X>GU+PO?L#P)\!UQ]N+A_
MQT,2A#!)P'VT/V HR1FX#MT?P6:_!W=8(P%W,('Q*_2RXO9!^,?/^/_M4/T
M:N@P^?E;$OSK=T]I^O+S3S]]_?KUQZ_3'Z/X$=5G-/[I/S]_NG>?$*X/08@;
MW(7?Y5JX%)[>>+U>_T1^S449R6^[>)]_8_I3#@>))\'/"?G<I\@EC:N@!H02
M^+\^Y&(?\)\^C"<?IN,?OR7>=Z@U *#M$4=[> =]0$#_G+Z]($8EP?/+'D,B
M?WN*H<^'LH_CG[#^3R%\Q$3#GUGCSXP7^#/_3_;G3\X.[K\#6/++W;6P5NM*
M69G23XI0VQ5^"^,@\B[#_"L]5;1>K"KX7C]_GSIQVJG)67W-%7B(4F??"7I9
M4S/H&]BMM8]ZNEL9S?JP6RN7- < G;* 6S<MKTWW^$^?T+\J .&W%(8>]'*(
MN #)C$O*)Q,[*;DH.W(KI>[QW!W%;+T35"HI,8'NCX_1ZT\>#/"R.<'_^(#_
M0:J,_N-OYQ': &QV21H[;IJ71"KQK]]Q?O^I"@C+;>(<%5J"&RJ62?SD1FB!
M>TD_[,M3HA]'S]R/9G6..#_^;;\K]&FCH$]P85:$8IA$A]B%K?JCC%740AF>
MYSV2P+LH&'[X<O_=_R(RX/=<ZO_]EY^.I0S>Q9=A&J1O=_ QP%\/TQOG&7+J
MP1?3T^$RB'F_\V0LZ'X)K#H+J"@XR@(L;( +YVC#CG;)UVA*^O;O\$U8*T9.
M)QL$(*MTJ E9PP<^+@$A,F% I $2UTJ)_ 3W@$KDU*?ZLQX"\"#E_5[^S8+N
MYL"I]W)Q1,8R6KMV@S[KX4]?[9U'#OC:[WHZEPLJ[]W*CQ9T+P]/O7\+&8"%
M#$SGOT;[0XA.4F]7P1[MFH63$B.G<SH7@*Q.YS4A"P@@PR68S@MA0*6U,N+\
M$,>8KD'B.ON_0B>^##UL2.-M7(6BFG;Y#5"+#;] S@)V-$!CC@%4'%!Y@!4
MT@!8Q<"\\1O<[_\]C+Z&]]!)HA!ZUTER@+%P% CE=<XC#:"K\XE V +FJ. 3
MS"]8"1 MD*L!JF> 0_?/SGZ?V\>%]:Q)Z>0+%V"5)141:[C!0R5@!!$M;BE,
ML. )<?(\>GYQ0O%ILBJDE0,<>#4*E"3L80 +2D0 + DR40/]?_D,X\<@?/PE
MCKZF3TU$$$CK9(04<)4:7%%K.")#)R!+K@*HCD':9/NA._@2Q2E"=)\ZZ4&\
MBHC$M5JEI)!KQBFNK#74D<(3F:JR'6RA!*B6$8M5<04J.. (Y/3:L+@@Z\:L
MBI %!)'A$IJWJ+#) PTY;Y^C;S]&L7CYJ4GIG#VX *N31D7$ BJ(40FF""(*
M<EDC$P,]7U,^7J&_\984B:S>"4((MCY),((6L*,)FW"RR$P@V9Q!5 Q2!5MB
MU(A2DC1!$P8HGR2%F'44J2-K(@BQD>FG1[9#BIZ?H_ ^C=P_[I\<U"C;0TJ\
M(='&1[RMDBIIW:LJP*_M6"4:%E!)&:1H]THT 5$%5!>4E TP[/:PVP?NU3YR
M>,XW'!F=_.& J]*E)& -.UA, C)004 DC2P]FS \.'MZDI+,FU4QO8L.#V)]
MQ2G+6, ""2SA6D-ELT.M&>>+V F3 #MB-_*!%=7LE"& RCAHU.0LXH8 FMAQ
MHY WP9'C">SF\+R3W,^5172?:JO0V",M_=T"#@@@20ZS@ H:Z//KT(UBQ#?R
M0@,;VN!Y= C3&&V!/+$+9X.63F8H5:!*%JF*-?Q102F@5$65F$\AR)0!UC;
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
M<H]-SZJ<I2>S,8Z-NU#F]M/<+T\^[0FE-1K0Y8 KIG&^*.G'T<1;N588O55
M,@EB\D=,=_ 5A@?32V?UZBJG^9N<2TU*IFX51?#%UXIU#=)W_F(YGME L#98
M19OF6YQS.0KQA>*G*'S\\ #C9U"[=32RF69/ VIG&^I%XL*%IRL&2:.)K@FD
MW#FSI&W=:5FYPF9/QRV8,['!.4J&C=DSEX2MV2Z7,!WOV=1-*SP=(_P1@Q=0
MB57(3CN[\4+7H5Z164U0V3BL^?*@9F@QN3]IOE5OUC.^2VFX;6]2HNO_:.2/
M;0B0TQ*NF'RUO<D9N('$':J^H:'',)E+E.XI1'GJR$X(T_7"FEM&!9S\70QW
MUK!Q=6I3<>.K43LJ36RXOVR )]_6'#7,^ 4TV,7JIJ3I:K%;ZC+ MAF[572"
M$6OC.&VNFJ$QJ4*'B0W1,+F@9*/.]!FBM>^ '=X"[?P#&N[6W<5J5,KY9C(B
MG1I.)B3=DQ/#3.^? -4T?6:HAIZ2Q6/B2FI]%"X"6GL27A>CD;36SF1E0R2*
M1H GAIC[9_#BQ. 5EPO^Y^C'T1B@,P)(,/7.P/AL-!KA_Z-_2(!S2)^B&/N+
M_S-83,^6\^*7($GP/0^^WHD.:9*B?^!SAI.""^B2"&5@.CX#F%!$J/[7/A.?
M=KKQB9Z?<>KH!E:S8AKO> 00*Y<[-1EJ+)V-/,^&Z 9R= R3B31(&FDZF8]D
M1!VOSY:(K.OYG#!OO$#_.3Z;CZ>]<?<,H&)>((FGOW_[T8P#C>>1Z-S._M8)
MO.LP>]O!O8KFBU*_%&\\]W4]OU=QH5'!RMPZ%TH :WVX#D&F9]H50MY):G77
MZN[0#ZNF-KS";P3(NM14>02"@D>F-_AW,'6"$'J73ARBN2K9N"Y=]Z%W ?W
M#40;?15%??12KT:9:<U:U" ZF8UV-D02:8N7XT23RX-,P<@2PQYDU(YE])BS
M6XRFNKR:&NTZ32#YYAW>B<RZD[YRC<V>[%M09VK#O;(,&[-PE(5SHN!LNG&P
M.Z0D'FD:H27%"J,L]Y5"@VF.JT/#E,UGGJ]KM6]COE6 W&C3);M_"R<!U=YL
MV3HV/13J3,BI9:X##4AE5N4B"%3Z9F;6Z-<^NUS/M;D"*IPT5>&RF4/8N=ZT
MF;9D:$&KS#8FV4T\8G.YA3&9P9I--&)-(S:OIHH(S& B-9JH8S6?S&RX(V@-
M6& LRVRZJ Q E.WA(:E#LBGL<LT-P6H8X9T(N(!O=7$:HV@Z65F1E$T9J)Q?
M5!<<E6WCV34QZ:HV0BYMD%]5P%)N45%J.Y\N=Q,;G@HI@53B%%6TC4_;X[V
M:@M45 PRBP-=2J^2?):'SW>LR!.HCE2):"5MJR[56V[85)5-7;VWV;:I:=*8
M9DO76=K RBZ8%>_LF:OZGK9U:?3\#\+"\60Z)DS$?VFH2:WZ2AK#<ZX%<$PT
M!7$:EV,W'4],1A-I#;0KI6B!5AP6JM55/"\T*9F:]E1.#7(-ZFDXFNVL"$?0
M!FMG+EIVJN#567JPD"F8):+X>"&6I@:'B3MV7$L)R,-Y(OFL.'[PZMI\ FG4
M,DO!AG-(@PK=X*]7_L@^K\P&L"<RTIYSRG7H1L^PR)3=X%(NE-89H%\*N!J3
MGRM*GVDM5SLKXA@J@63HMKVYN+RYO[P Z%_WVT_7%YL']!_W#^A_/E_>/-R#
M[178WE[>;1ZND8!QQR82ND/T:.7XLTXGI2JDJBL2_8VN0;OQ>&[#F92/BKFX
M<O;X?9CYO*@XROC6ST +C3\5&9WV- ZXJ@&M)$"-Z.Y\9T4L! DTUD26D*?
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
M&E.;-<*N)"X32M-'T:N=Y]M@'%'%R=A#OGS^O+G[*YZ)[J]_N;F^NC[?W#R
MS?GY]LO-P_7-+^!V^^GZ_/K2S$IQ'SR&:*_G.FA[R=00#P4R$K@F+B5-.OCF
MXPFT:$7I GV(?M5CEFW5PYU:2JM15@MA+9AP6L)E^'E4!T=]D!=@TSI7I,JX
M"!)W'R5H46[,6";1,)#Z4 R<F_60%<\RUDS7C@T^W<I &?^SFU\O;QZV=Z96
M,PYPZ90@DZ?7'+.I,],5Z5LIRIDJX$Y=8VJX-RU#<A6C _XT?MFPT"B!%&<U
M/6K9M*9<?D/3511[0>C$^&W\E_"0')R]RO6,FJH^TK6I2IE\*GK46\5=+T8V
M7!:V1\RD/KF\N=C>@8O+V^W]]8/>18A8ZFGNE3QN'W=RD,EE$4#<V4[7F5>R
MZ*@#[=P-)UQZ-;2T0AVT75_U00J3*X42.,;=K48"TRM"'NKD=N^0J[0BVDG#
M<J"@I_5%J5HE:B]*Y4KT8@/NUE8XS[>$R]QMWFUO+^\>_@HV-Q?@\C^^7-]^
M1AM?(\<184T4MX]M]$FC+'?3Q<*"E>/T"IS:JV:G%/633;LB+)AHAJ*N#2>A
M3J Y+]I)(6> %%.-K&7I:>F7*/*^!OL]JO-UF*+:!+L]I!X?RC:YEF7HHW*G
MRI6YW*J +.':#DY="QA] G36@/2PN?GE^N.G2["YO[_4?+@Z&BM$M6@PQ#2J
MT:QJ8P?.=;TH4++WM<1]0J]I,OXI]U_[IM!K"AR4B#8LAVVPLO;!7#?S'+1T
MY2,A\ILL@G4A?2SCPRL3JBI!?1'F_G2G*PJ^C$ R;$RN@LO-O:%;(PISZW^"
MB*E0<2 W*M&X1RMGH2T3G\)ZTA)UVT[2.&05NJMMW?4/[$$X9\/2H8Z4F[,D
MP4YY5-?2=:,4C/L\>GXYI#"^C_STJQ/#&]AD4E15UOD4O$UUJJ]X533IM.*N
MIPL;8D1UP<P\5-O<7C]L/EW_G\L+<+^]>OAM<W<)+BY_O?RT):8I<+Z]-W1&
MNH,)1.)/%_ 5[B-J.@V9FBK..9T+H^X(*^AI>^JEL/[U5)N^R:!ERCJ9%GVU
MI<Z)S:*Q8,.Z?'H-ZM3/2SP#I3)I"(N\6)"7:^E:?A<D?R3$W<"%<>H$H4+H
M[@8=C017 5\AL4R!7L(LIZN9#8%86D!E9N1/VR\7:-K]?/N%.&/?7][]>GU^
MB?YR\W"W.==['TC3O^RC0S;2@O#Q'L:O@0O/HY!4IF$"ZE0 ]909[Q8C7;:
M)E^2TVK07Q>?DF6I8R^>T@SZ,C 9H:AQSY;.J-D(3PV4-+W2D0#=3]'>@W&"
M[R33MYLH;;'E:Z&O\45(VTI5'H6H*E/'=^@LIC9DI>@(FWDD\A=T4/G+]M/%
MY=W]/Q&WBH>_FC:L1,_/04K?7>.=*7FV D/\9D7Y*KIE&1K-+%TJ5[&VM"F
M)CSWINN5KA<,4J-+=^C,RK_]_/GZ 1^L[XD_$)Y>T71[>6/L&:52Y:034;L2
M2/N@,>TZ%NSM^JA"3UULSQ35M)2V+<2R2:IO+MM@'.D(FZ'NL9C,#%(JR%(3
MR 6,@U<G#5[A=8AFX$/>"'^!WF,E:8+R&GQ2B?K(WD/%R\P_H3C*)W^T@S:,
MA=XJPD[L]"A$I_7-+W>7EV26-V"0R4YXN%J;QQC28#^2PZU<GL8U=$;SA:ZG
M5(WFEC: 3^^G4ZPJ:EW1HG+Z;"8#L,B\1401)&L $;#&]/JV<=WX +U/@;,+
M]C1;8^B1P';E/S5&UVE3AM: .^TK5XO!HUX ??GG34>.#8'=3H!>)^_F_/SN
MR^4%N/S/V\N;^TM*X>W#7R[OP/F7NSM\C?OI>O/Q^M/U@ZEC9A;(([EUWASL
MEJE2^>,"?7Z(8S2.I5OW?K] ?9-WHYVGRQE>X9@Z9!6'XI3.>&,]LVO0UC<0
MU^Q]#3X;SA(#58L9:]EG0/:=,Y!]"93*I9X)-*1MZ<^E8_D9R+YHU_E\E[8X
M>O.%=9ZJ97"K!V:>)#7_3A=P8H,;@@I&T<3_V^;N;G,CNU49L!M^.3@X;2YL
M"(S&$:.#S!NOQF-[%NY&G-T[0<\K2W%W--=4ZXO)$WECP9B58:O3Y"AKTY1?
M9,YH$15/HF$@<8EJ5#RA.'6Z'2_A2-<3&AFEE(&R;S#/MY\OP</F/XV%Q6.0
M-SQ2%,OGYYWE:&K/RJ .N%O?F!KPS6]B92I&A_QI!+-A"5$"R<G G*4I:G_3
M-^B=+A+!-ET<Y!R[U2K?Y#;K9<EQ5N[.@HN/[L"9"Y O]P]H:KC#K@?GE]BL
MC3,*&'<]4._'#BVBU\U@:$I:,(>T LLZ$I24 =:VU'O@_K!+X-\/".OEJT*F
M';&XSMR.<LC59(Y\6;JS<+R=:T/8-#64;!C[C_>7__$%&Z(O?]5^#R_"+G?9
M%0E3C[+5%.XLVIHJHCVA7XP,\49/<;&\N4%^ JUL6$R:$;+)6',-0%5L6C4J
M>;A(7H(WA3V,1$7KWJ41>FW/(I2G\X #ITL;;-WJ2-FX=T'H!B][&KRA4H[Q
M,(U!%-^2]-W'C(DN3?_F_=<A(;Z:%S!QX^ %_U'0-.V+T1FNL5L5JR$;VY5!
MXR.L'<>UX47,:>C95\W5(C"E\_M%PVS^DL"M?YFDP;.30E$2N;J0/B;RX95Y
M5I4@_; >NVO79)95%6QUCB!93(M"VC OKIP@_M79'^!GZ. #(N8[G<#5UM86
M^OK8U+I29:(I*]-'<A-G.K&!@QUAU^F)BP&D'% J2,+2(?=+3O*$GU2@_\&O
M%5^=/8:BLG%24:21 -S%;F'1974'Y(S]!^<4)R](\#]*I9C>N+?IS2[-HC?R
MU>#4M&)?WPJM,A//:$*Y-_![]K^F+SK0Q@TB<#MT#%'H0[$T/5+/YB-M*1&4
MHE>IP15ZQAT+,!URI[&;E*NN-YI4C^RR(:NM D3.T2A3:3?H]>:64V.56-Q
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
M??3503W)J0A-Y8L/3:*SF**RQF-NJ^I4SKU*FC2-O3N&:QON_+I@9L['>1D
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
MX0-AM24N@H0D@K]S4M'\UZRF,XR86A6JP<3D.M0$/1^Y<QO\V]JA9:Z(,TF
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
M@]+7P>X-E.4R!(! P&%"R+?.0 D&N90H 0%!""B4P<TZEZ&G:-"I2.HWY7"
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
MQA>EX8=&(]]HAK)6()D$'J$;0_+,(]N@^=",TZJ6*%?>#([&*UU7O$W!1KL
M%R1@X<\(P"/%XKP'J%S3!S-^;8FK-?TS8NX]C%\#5WQJ:U>&\7?B\LHID)A?
M #UNC5?KA0V^KR= /X'-9U8$$\N?O-_!/8YK^2EP=CA0$E[O:0XD=$*^*1(B
M"1JP;2'Z:-VM>F5>MRN!L,.=^:.=#0OJ*=BY%PA)<GHJZ9,INW'=^$">O* &
MV#\XWUIQ55E;'TE;5JC,3D55TK4KWYFLH 6T[ 2:"59.M0%2 1F_P7F4#)1B
MYR*(H8N$T794A6R*.IH,^:K@"\M^DP(]\,V7T#.>E*T=5,8K.=,&6'T0XMP[
M>Y@@BB.Z.KL]-]<:(Z*)%@)H!0MJO]-M_&0UF1IWCI B8R(!8&& I$$F;GK'
M]2V%H8>FOSCR#FZ:F4?>R*3H[,_E&RTU78W[JS:5J6RK5!2IG7\]<18F4WZ=
M )D)%$57OMQP_ :^#Z,4@O'L1&^MDTFY39]@G*'K=@9H58(^@G:H6)FF+=1)
MSR\<WYW:<,'9&3CC)H$+ CEQ+VGT%#-)8=CJH'H0?*4_27;)<D5Z_)E/O:DN
MH[S"36@'Y-Q'%4;Z2SYAME\5,@^WT=+5=;BFEIK[U(E362^U@<WX%L#'( RQ
M68A9''HXS@R\6^G4'O;L3SI2T :;I2),YNXZUP.9XI%MF:KI:VM^A:A%-K_K
MN8#T?T7W2*V*T'A?UZ%JM6S*ROI9Y"7'W=E@\>F.G)-B^37 5DAPA8[M!7DO
M^XCJ)CK"PS3=D\O(XI+\[7SO!,_U2YY&:5T'^T; QS.^4#3/=.VMS!_W%4$R
M)_]"#VS]TK)*5/]$.Z+)= IUC7*Z([H,O5/W0SEHYG$3<9[B;X9,>U31\Q*:
ML*)G^.!\RR:=CS"$?I#B1ZA!>$#@MR^9(WFRV27D8:K(\^:$ C7Z4)U<[8KS
M5.?2LD=Q[@B:G)'ZK@>;+I"4^[,=7+^"^%'$GJF?O%'$6MI9VU0!#C5%*MDQ
M>^XO3-YZ= ++1".G6G9PC&34W* 5!7VD+=.:=+7S3:TR'-;)%4EW^C.T*;8A
MH5<'R,S>+#6?#"0?0E$,@\>P[1PGU-(_QS54@#?'"53HAGHQ=N>ZTBRKS'%*
M8)DYCFJ9>:DCW1RTWQ;1+<-TYHR<H;ME3;LE)/E,I+O\-I %NQQ E<GM;*8.
M,GT[YH:&'FS5(O;LV3L2T*)M3Q-,]LV.F'#?9\H_F#9]YEDU^CM@GE2B_L0K
M/1TQ3RB.7M_/Y_/)X!-MBS0K)U>$C<9("Y:<,C5T=W8*:3%)J6E2"_(8.KZN
MS;+"36X7Z'8>V]IU7Z=F,#'Y#,I&74]V5&831;C,$IKK@ZR KFNIAKZLG$P[
M]*B*/MUKS#Q'6ZB4%K-,^PK8>$#OTITG-(B)64<;4VVPF7<"+9Z'2#' "3U
M"K)X/LIL$5W6%JDFW2[,UO.Q1<E,ND!O;;S1N]-1ZKY.S6!DIS,D&\<V&*C;
MXI7L=6@)[]ENT.UP:='YO\,9G\XN_LQS;0@UTPJLZ*PN4![$Y:GPLD+T+[[+
M/&J7BVIR=FJ 6G@Z">2RQ-[3^=CD@UUUA&)_.#^*2[/4J<_93IZ4*)1/49)<
MH<[BF:H^0@09EFIZ@?Z1I($K&$4GE:AO,NNAXN6)[H3B*'.\D;^S(2M0;Q7A
M1(#!I/\>%_T#P)T!CJ6#8_%@1\JO#)(SD'_C_0V7;&O27W,7!5H]6&K5/G&L
M9*516XBW6.YLB'O;5SWZ'2EVG,DZM,WG((SB('V[#E.(N@J_?JN6<OGW _KY
M,TR?L#OZ*Q(A,?7[ZYWN"*P>BJ<V[(ECM^OGJ=_(>CZ#-IQ5C57\U-F!?@30
MKX#29\YJ$P=^:HHS]$3[/2XI1SU,?IYC0]2:C;?EE@AK.KXTPBT.,$))>F.S
M6XXF)I_ZM,$H9UY&KX#^,76^F7X"Z?O0Q>E6BMK<.2F\PVEQW6 ?T+3<N2,N
MMDD?$(:WBK!@Z/=2LL;'E/TU1.6)R^G%TEB]WG2VL,%ML?<*U<?+EWN0Y&K
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
MN72#,:E77I2:EMG5E-9S,JO>1YP3*$_H;_QC\LD=Y47N 3=WGH:KUH:<[8H
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
M+1>3:R$V\"+*_LARGX:/;1X8Q7R/KIADP#0\O^,K(MI[7Q;S^19R_@*V93?
M\WS-ER26C(_G5?]39]#C7*=Y+=C:RJGEQ6E5;D)_Q2?TK_.[F^GB,7=++7\7
M4S?SM/@I3]5,&@UP;=OS!%VS5(=UGZS;G;K<78# #J$OR3,P#GG47WRV1GM:
M%O.2!6U?7J)M9O+\],\O:5%,"3Q0*^%&^!3\,EMNB]421S Y _&9.+T7%6O
M -3&H=2J&^ 'MF<+"B+B&BG'&FW7#]!\U?$E"3[J)JS:M=N1"^,\8@OE@4"=
M/*5H&XU5M^XK 4>%KKM=]9//B^FV8K6()7^#TN@-,^,-S6(LXTTAO5]1\'04
MF]]F ^C1*7 =TS>'U9MK)=6H)K.I@*49KBG)9<\0_*[1F3DY,,[UN\NQN$M=
M3C#F8<S7FY0PO";I77E)5T*3)M?7BZ_3FZOIWQ](4?KMRIXO?YTNKJZ_+A;$
MV74WFWR:W<V6XN((3W)*%I#+/^()+>3O!C@6U$5=%IUD4^4:^$&FNWG <?8/
M^QV@.+[A2'(%U4W8M;K!F;@TZKUGEZ.DSC;7*J%8Q0[SVV2QF-R+,<Q)W:UV
M>D!=>^#9NFT+2I#Y>0,)SQ%7P'%-8V#XH1]*$I35P-_:A<C"-,[55'I06+>2
M*L%7LWML>$^OEI._BXHCWHVW71PQE0CH?FB$PFI@5L;%%8M!IP*&XGNR9+;A
M83LEY((#X3C76Y'1&ML'/B(F NFP;N55HJ:NOSXN\=);$ OX>DJ,8/+4[L-<
M^1C0":&@0(TC89!AMO1?-5,#%2I*-9I3QGN@0A 4+U4+K.-<H8\;+T/_V."N
MIF\4KY16B8MZ_/KI<?JWK\14G7X3Y8XZ'3E/1HQZ"F"ZH>Y7'#1B8/!<\]!(
M0& $CBRUH!NY77^ITXAMK.N,YQ$JXS&J5HF9XG^,>O4O1<?_^@'>I?JD?H*@
MIP)';Z[SD;WSG9E4*A!JH>I)DMZ.@^NT@[(9X.GMZZ4?>41)NLV8=TA*X6_Y
MNR\;7<H'P7KHT:XG8 :&Y4IBI725<&?01=)M,5+_2C+"3[-U] +7K&RJQ^T
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
MS0=RO"]F"PQWG\"$^Z X(0-&:$!?3L6<*1T^5.<H3_4%_HA>-B^SV$_WGWY
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
M!Z4IQ2Q&4G7L**41/H,NP;FB]NV CSSDR.+/$*1'5)C1+WUPTVI:<6]\Y:;
M<J%M_+EWOEI^%,(:MC;CWA9 *TYMHMP4!+;B.']N8=7RHW@9)M+/Y35?*GFM
M+Y5&DN=6TPU5FD.9[I*FN\H$\>OPGOS#1:_0%O]]$F\9M[WTF<79.MWDV\4E
MGL*T^#K0#=U598D ZS*I+\6@D2<H[Q$-(#23J:6A4)9R2Q>;GXW<$/9(7*;)
M*'<65"-0=4>6RP!Q$Y>+1T-F(9<@>.B>:/'KZ.V0$:T41*2V"B+:=_41@HG"
MT+"KAIW4P42:8B,H35;$1LZRPU>.(8T\F$A7%->4Q4M0SV&V-*I0SA-,E*7K
MDCCPOPZBP/\ 2[(WS<,9UGG?H@ ;;Y1 (MRVMBD(7<\U9?&"\@BB$<DY HK:
M2N&W:/V\0*MM9/!S]+I,IO&:'#&T^* Z5.Q.@.Z$FO"4KXW2:!8>)TS!<6*Y
M@G2#YR='I%[1# 30#*!LY@_'+E>/HM#S1$N@*<CNI"'P$#21))Z_>LZRA7 "
M0[ 8]O-HERLUUVO8BX)* G3+5Q1)0A<[J0%41$6Z(+%9D?-Q<29#+K4%@:6K
MNNBSA9O7M2)BH#J';!HTA 6QO>FZV?[7>(R.YTF2#9E7'ZN.ODAO<FD.4Z\K
MBU$6P2.NY0K/*E7+N7KFG@S['.QM<P2@-$+9Y*'P]N1KC,KZ8C+1B8"AA%8@
M20P:8]^H/PHX<!7R$I64.1_BIR[RJB4"1ACJKB25M+O)BXVKD->@4<\/:?2&
M]].'%?2WL0?,V I*:Q BW[1$YU'I8<95HR::D!;"&#2P>?^UR1/^#UL2-4TQ
M'-6P)#A !A0#"V8A@T&CEO\OC#<P?5]^Q]_;_Y?]:H-% GS5TTQ)E%::\5;E
M.Q>D@O^#AB/7?+GI91.+!,! "V1177OQOPJIX/^@0<;7SQ$*YZ^(7!'%3_,P
MC'R4LD\%%@FP;,]W13^,&71/XH);R&;8*HQ$*]C=AS(E4FT(?%O1%4GN-KBU
MHP8L!9,'*4)XALVKU;%1[*X&,K5J/.;(-JQ3,(6DN@4%#W/IO)U#C1;&:5.@
M*ZZ*1&M57>T**IHB4^4%G2%?HCAZV;RPW"%'38!IZ5JU&*4@A\B)MZ/B$JD?
M>L'F(8WL)C;#'XUL+C<!EJ^;5:M25C;7#KU@\Z"V\77R\I+$^1+*XW(>D\/
M3U6@FJ; 430SE$3U9(0(U&@X+#2]2GE1.#W+L@T*BI<*L_@ZB?U-2F"=VN$4
M_O-W !Q?=Y D;KU64NF \1!@?!%9'1GK[25U1 X"V[:%.S,&EE,]PD/D[7!2
M(L\EL*)0?F-1O -*'C:I_PRSNH@U0LM#"G3D.[IHLZZ+=%JA.P21#B>9/ ?R
M+8S2;W"UP1;I TKS398B#5ISH%NF(HMCJ94$&A$=BMJ(L!4>TL1'*,AN,4BR
ME&'LHWWQ548\ 9L.^)X65!_N2RZN=M"Z%FTYES5^%!B^'R]EG=4W!K:M(.&Z
M<9=5UH#G4.IC\$>Z$SS$@ SS!F5^&N7&)X7I# I@>Y[CCE%[Y@%UJ!,Q'/LG
M3T]IGC[X&F;/6.G(H@!MT\!2N$\G *[F2G.7VHKY')@.%06&?Y^^U?V^OB9Q
MH4OD1]L\+)E4[+7 U070C="HWCV.0#Z=4/:K"C^ 1E"^E<_'F4TVZ^<DC?Z)
MZCP"^V.310<<Y)F&)!&@[34"+FCM\Z#O5((U2H4^*:S#MYVR[<2]I0'0=O1
MEFIG XCZ!%;G7-WBWX[6H2O9ANVD72($@:':4)+[MB%$7H>MD/L(WPP?0WR
MZ3S-N13D1BG#)J]E$8T>J##PW ^QQS="+";#("]N+SL9"J5D$@<+\K28;P=@
M40'?]-U ]-551\%S 2O$+<A+D\_)[3%TLTGQP+9U+K9[U3WZGO^*^?J#AQ[X
M%@I<V=Y*<8JQ)<1"H)=WW_1_5W*P&?*]B2[VTY; ]PVDCW2#IH(I1/EG*N2Z
M=RA/\+1^V9=O0CXYL!(2YK6*UN\+S&'&IG#^CP,],,QPI!/NDOPIYG W%YF<
M\_"&A!XB?*I>?A:6/PWTT*RIP/,GGH.UW"EFH*B8M2&!+J+LC]L4H5F\1EC,
MZPO.P+I/XU6NA<Y8]:J+<4=T%1J6 CE]>5TE[PAMC<.=#Y<D)>VJ=-,[!)J"
M/'.LLZ4GYK/4(RG=OI<B1"D7$_6-0>BX,!CC%40#GG[%17HONIN=OD[96\BK
MA<,;AETPY$F:5)6^ H?H'7-*UXV1^C8&94"_ZB9GTA#:'NO 1YI??4,T#G$V
M0.I7UT1<>FN6KMJPPL_W3>! WW%'>HMU ;;TJ\XBE[UP[L2GC=_$7-4#=6SA
M/Y=C2Z7 S.5RE!;'(;D?F#QAVR5_'[_++KKG2"D]J7::GO1Z?K]<3*Z7CU>3
M^YNKR>?%=/IE>H__6>0H%9*9] ;E8?31&RHE[\88?T7!$];;)S[^5;2.4';
MTIRZM$>G ,' \RMFSZ5<ZGN=9^ZMHJ=\UMQL,(I'Y"=Q\#N"C$=T/-0@T*$E
M2S;C(<1$\=&WX,1XJQK082Z?H[3S;-D3 ]6U%%L2M[F R5)EQ'AK!]!1DLJ$
MZ^>ND^5 #:!O6+*$KPJ8+36<&&]V_UJ8+><'T#7']24)X[_LA-A#[YH0?YVL
MX4I0.GRFJLE,B:^WUCD%Y\673OMT$53$W3QTRJSO8]-(>!JR 5E/N5"HQ3SR
MU/O0=.WJ'8<4&48+#K.E485RGM3[;6)<=R4"V7F0RZV :2$WE.W1-8<8:D&(
M?C9R5*&Q60"[?"X&L@-'D@KEM6QE"N $Q#E$<.[B$U;H^=6<@A*O@48D?Y;B
M$X[G>L(]2HW2:!8>)\Q^8J4_FO8W1&TYZ-MD.+_"58#BQ\=GV)",D9L>6 HR
M3,DVNI/MJQH\T![>60(X*,.8KJ(L@_^WLY2J]$!W'!A(<CO<5TH,>/VB/BA2
M^I20^G7A]E/LC(UU34&@!BH4[;7HL4%5!<.$V2^<@I'$*UJO$;I^AE'ZBK_*
MR %8)+^J)P">ZCJ>C.=+9WEP@!4<0['+>+A[DS1/\Q=)V]*E\_ 1+_,TMZ*O
MX6J%@D_OQ=NE74.&W=.S8^"'H2-/&3^J%5KO*1P(^SERP9&@BGFXW[@IJ_2D
M%1Z1C>?XR*3! M(K=5M_;PY<P;R"1!S\!I^8#^E.6F(;10M"2?+7MET75#"]
M4K2=9P_D>J/:1 D\)0@-V8S=/KM8';@A:P%+('GZ1CV%_O-QV\'.OVK7>'%
M3_U(<Z<3>L'9ZK;18[=)^@7&<!M==HM8B0OJ"8 9N(XAF^>74YA-F Z)Z:1[
M1C/@4W5=@1(G'&&?N^T@'I+7C2NK$ 5F'O&Y_3&>PH\H?8O\#A.BOAN +,63
MKIIEOWG1@/0TN=[EXA4FOI_B09'X\#C+U<CY^AFEU]OTOW<1],A#9W+I2X^6
M-4XC%R;7UXNOTYNKZ=\?IO>/TVT PWSYZW1Q=?UUL9C>+Z_N9I-/L[O9<C85
M'$.[8T ):<&#\H\:XQ9:=0-L9(35NHF7 5R\X,N]+T<CW@D=#_Q^GP":CKA=
M/\!R=-V6Q-SM)JS:]=Z1"[W<$$/->:R$8)ZMEO!'6]ES=@ L2P]<24[X 87>
M%OXYDMK?1"GR<6.L-?(*C] UD8'05BTDR1W7$")K!?H<>>T?X0IE>([@V4()
M#<MK1AVW IINF\(O4@86 PUCKYSU_<_#G;+TD";!QE_O;.;W'#1<73<>@SSD
MP/!]6Y?D3G+(TZ\5>+%^AQQA%7N[@Z]%)P"&R%<_GLR[L$"L.X,+?$_5'IB6
M@3Z@M-N![^KFJ'-;7]P&+G8OAJ5KTBS=WR:+Q>1^^;OH]Z#>NEVP?5U[8,$
MZI6W2#*<QEV/86 @QU=$QT'P<;W#0;N'U_4YYNO6>;F&Z5IHAN,Z<%L'VBSV
M4P0S=(.V?S*N"UKT EQ=\TQ)2JMUF1>=P)[#''U$:[Q-$D?I_HKJ_7H%H]I'
M%;DQ0"4 KH8"1YJ7LRV$PHE+[-7\F7986W>\4!)7SQEVV )>UXOY[0X[C0-!
M.@[>#)(7E+NJ&/J-=:K?S.ZOYU^F5\O)WT7[Z?< VB@X#"+@!P;2NE63ZA\D
ML;6/]L/;7;]\0C$*HS5Y0QK%&U*J_757"HCC!J)[G\ S;5N6Q^<\(JN/C^B/
M7ZQ7?@?@%I'Z3ZL*@D;)TPB!K4''E\0T'4!*+.DW\D!LD.)NE/FE,K:C[_!'
M.@B:30Z@C?\GR6H^L[@Y.2$X%G(W-9,414]QAW5-(02Z;ZF6)"K7N==U$P_$
MWB&PT7<]LX%AA1!)4K+XS )N8L'A[H!3[W:W>F^<EU8,!'HUBORM@RI[/3H%
MH>4@1Y+$!>>:54/P1^RE18%@I]&TWEKXZ('F>-"5Y$W0$$)CS@9.7@QYBR%F
MTASI19VG#D\OP A,Q9<DKNOL$Z@51PY!G6.=1CNMJ_O>PZ0'OF,C79)W5^??
M>_AX<2CU/-9)TWFVT%B#?-\V)(E(._LT:6)"O_0TE,N;AS1YBS(\6#Q)2XYB
MRLT-I37P52A-_NOAY<2#O%0\6KQ__X"@Y."WN1S\5^K'</&'T+"=2G:]2X*Y
M2[+L%D_.N@GW"87X3"@+#O\E6T=^$]A.G0+;<2THR3;*([3:;7((!HCU\G=
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
M^*N 1?+_>B@:W]2SDC1WPN@".#7NC]$?U=5!FY]_/\?]$?J#>C]X[W/O^G@
M/G],APCM?0&\(?='Z(_J(Z'-'T?S;F;?'Z'EGGX\?,Z]P^L!Y_.'=(/1UN?>
M!W9_;/XXGK$E?YT71]F232X$4I;V_)PB9FF6SR=:EM;U/*)E:23/*6*6$8 Y
M1<S2S)G?Z@GJ1B+AP/E&TIWZJE1V\JQ,T*\-W%HB\@&(_(Y#.>&]VUX+F.TY
M',HI2[P;=&@'LX).ZTUS?<M.L**_YZ(=C \=N\0[0,?N8%9^J#F"2"FRQC<Y
MBU[Y\]<%:.-1VWCZ$TA([3A*NKBP*^Q2FCB=@UKJ[4>9[N;IG%N(=7-(;MG9
M5$9_YQ?>=RIX%8P_E,:P)+%G16+?0Y<1>?2ZN8[_]W6R>NXT]$U&GP7CS"1H
MI6OW$BW?O75WG8-DB9;%<)',=</;16\]^Y0NDB4BYU^MN&L-V7PC\?L58<S]
M25PB<#%.X%0$7ERGO\/34]<:WDX/V4M-#OQ*Q7I.D<MS&/Y,L[W"P%9T9CR,
MCF_KVXU%4(G@)8Z??TR["KEV=8C'!-">(RU-Y>9+6EI,6IK'M-JIM-3N=M,"
M>/6I&JE./*<&UA/3T\$-SK\H(M/']9WT]G4GKQ)3+=2>(T'=7] M"6K^"6K.
M-"<W82WMY=<JT_OZ2L?I$/<VG^3C'#Y9"@#(1^C6R=M)B-X>6O;[4=D@P]FN
MTW;W'-%<)XB6:/YQQ,-YKC/U*3+YZ5D:%MTY1[!3'=\7)DJT,>?\"%-Q+=7M
MZ#F>W:E(_9Q$N0X)6'-J>-P'H9.[^:&0>0279@D92BI>?&S6;.>'0N>O.KW,
MU+ ?=<_TY5R/J'78+)=<F4)8OY/GB,RIUOH2F8NG"DU%YI+1/BMT+I6@9X3,
MI9FRN$B=;GOJ["KJ:C#4+S(5)5%R^0S0.F5//Y1:M$3L@I[8L00_ZP@\TSEL
M68<'*L.-+XHXY9R^O70P3),2FV46=-VF9HG.)ZA1=<&<,(Q8TSM547B4[*EA
ME"^,%GL[HF[=VX+B"_8Z2!/*@GL6.)K8SX+AQ8JM2)OV::9[.LM0VX;M+#:S
MLZ)KZK[F'4]W"%,MI=-B*AMW0.V233XSA"[UE.> Z+'Y#DM&/*^3'\8QM#Q^
MBX6OI?R;+[PLS80YQ=,=DA:7TFFAG<VWH7;))I\90I=ZRG- ='7\V'SU09K9
M;*^Q&6M+:3-WT]>F8&C)8Q8+7TLA/U]X6=I"<XJGZ?K5'(C@>5%*)DK:".'O
MJPA?$#J>[+'B+IF^JWFWZ*<$SI=XFK, [:WGJ?TL\52[JX4^3TL\S>EYF@.)
M_?C$.%^;G#4F-YOK\'^OYVN3LJ@98G+]U3SVNG[UX+Z711+Q#C^?[[MM#;0R
M1:;?12;=VFB]WH7?[.WV)_L9[Y]XUGE?9=I,/$XX#_UXK^?!^T_'GAE&5P Q
M_\KC8J SE:?9 W<Q<3]^N:^3=! E=8^]ZVXJCUBKKOZV39_"@Z: < A_W@N
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
MBZ1YI@&[5EZJK/2AU39/[#:[78>;F=.BA^K5%#4#0\QW]&F@A4%V!? W=&Z
M[ET85J?@G5P46%/5 NH8OBL>X<NO(W@UO);6GJ*&=!494J,2E70C%:/VA2F^
M>#&VF A5%IH DVVB<,PF*8WN%57K\UM==+_2+::>^"9$Q<2P#ZJ4"@PWS$Y"
ML "$,.<>WJTNR89W:0;*&."7^)6%FN[U-%DWB:2?X)T1#[V-Z6AF:1RD8$5Z
MF"JUVZH/=FM]RPN)GZNLH^"QS9.;6(_(];'2V@X^KYYC(?_KC5<8/W^)&R]W
M28[=8=&)@2]X]-"+L@&;A&!'#A5>!"1$#L^05JR*,,HM2+Z9OQQU>UD;GYAF
M[1*NA[&Z_";V,M=TV M,Z:\""%<14G/V_.P'P.U4=N*3<DE"QK:?,O89OL5(
MN2_LO^;;Q"O5B\E9!5]U4S#$;1HV<;DL0S]5BA1R%:6%B4>60.K>^FPX!+)4
M@F *')F!4,+&8M*#-ITBYT5!-M)-R4<$W"(>F8B90()Q'> *S8Y")HUL7">&
MV0MZ<N G<G^ZM_OX<^QF/($M,[Y+* .1<H7H=DL0P>&3FW4Q;:VOMM;WFRT@
MNF>#NCH_B>F#76Q%=+!2$\NIN /@X+WD^,"L%&M\_S?J4LX!MN"Q@S:=A?\I
M$AULKG,'@09!/49/>$>L#_2'WW(&!NB9Q".3Y,"12!_2J$<!.-,DM-T5_BJH
M/HX?KRXOX4%(-P,*Z4KN@;RCRZD)!E,3 L 6G4/REO603^)H\QJ6BKY3-01M
MZB8"C&I8RG\)Q1R2>Q.>Z)/,6$.R"3(Y)1%]&*>J6M^^FQ2#,,U#W877Q"\"
M^<.@BR? G6KZ"WL_T7NH+5AKO;&QN=U8+Y,1[9K>-0)F0,4P95'0C5.##&0(
MA*9O 7L%2N0W1M4 ]09^#L?2QV+G^",YD;&;Q.K<LQ>F3U@ZK/@UT>=F8U)C
M#(,[(-JVUYN,SY3]M;E%VDF1DW8.2+@CYH^.#SV,VT9KK9W&&UCOSO;V!-(Y
MM88V5T%C6K[Z\9#S6$E;^R=[G['J]QPK?4_.3D_.VMAXZ_V_@[.#PX.S@^.]
M@R=*N7N*76/*Q<QQ-,M6<%/:NCVD?=RXK^#K3O1':9="N:GP_;#3STJPW2/G
MKR(6$;,O[NL=^^<0#,YF)]/J"T@CH(3=0,77:F3^>0]?V\3*%SG5_RXU_XO<
M?*B^^];)<4#]Z[A#W'/8'VR'^ML<'IWOP3[_?= ^ [3N P/?/]@[^/3^X,QK
M,O4<-LR-,H2GJ!P]'_+V,#+#6(UVP2"A#BK4 ?3B9._%NXOV^X\'V.IG#]:#
MHFZN^IW,M*+A:]7];WYZDDSP([#JOU83]HCJ0WV#A?GHK[#S-!@X!8GG,/!]
M0/,U\=Y-8SR&O[S8?))J3Q7T,U3T_S%LO7AWV@9Q</3SFGJZBMBG!/#;CNI^
MN<S2(@F; .8TV_U'MZMUK_?H77@<E". <FN5(3S3(%WE#3;4.OOWW(K 68-M
M:XX(I4?_/26A**"4]B.3"KSC+#)?@D.PY=-LT>FE-4\$\_2<I0,0>/_(! /O
M^)Q@!_@80PKGN>KU,.N @A4+3CT;VW-$/4_.;C8  (]+._"&TRP=8NV77M+*
M(G,:T$PW'Y=6X T?]:6* Z 8V!U:?DN2663VL@7:W..2#+SA$RB]P;GJZ7P4
M[$<&@T]%MN0UCT0XW\]2W;"6ZH]JJMH;GKK:O#QMVR_>;3_N>=ZF=ET8YL7,
MQ)HF/%+TSP-M&W!%3!G=%+'LIS%FNGW"/+O,4,H=5[@&IT76[2O#\4J^URO]
M6W16\6J.Z-5G%=^=7E^]>/?J<>GU%1:^2];MH4MAPRJT)5$]4R;X^L6[UX]+
M5*^1"4[D!:-N4W O?>1L;2\5L*2\O30).<$;KSG3IH@Y>_-DJ+D-[9+;/5=N
M]^;%NS>/2YCPAI+4SLM\5:2U\V(XC.FSRD;/@0-NM>:(T.:* ^Z\>+?SN(0&
M;]BC0A&L<R#R NZG+C,M!$>%*FVN/5"4GY[8C]2-,:E(8V<4+BGRF;*^'04D
M^<AA$WS''M?:,,<C+U7X#'P-<T57\\7I.D!7CQQ=P7><4*W!4<*YNJ"E+3I%
M;<X11<V%]VK3>:^6[JOO=9I;ZUC'\,BQ4GC'?H2E76EF&L&!JZXZL=55*#KV
M9"R(#G[%JBK45!9>.9FG,/Q<*2<MS/YY[/0?>$=):WM>*>"BD]4\F?OSQ<TV
M@*P>.7J/[[ ]4(.3ZP3X5S\:HC]I#_:MP#9[KQ,-C WM+/Z=^%OIOA(_U%0O
M_8*3Y_8\J<[SQ?5 XVD]<L( OL,2(M$8^C>!0$V%ZFC8+Y>MF88X$UA @\8=
MZB'VQEA\^;L]3RKW?#'*+4P2?&1*W,(\)SL4QG-%'6HM_E&=7>%\F"69/3/+
M;LM:=K\O#;OO=<*WX80_<F8"ON/@IA]UHARD2$T8)#CO]G58Q(M_Q.?5DJL_
MXG-\HKX[])XF2?0QMCW):$UT"<8(O%CEI<_]Z9GMS$_;/!FX3Y,ANJA';^&!
M\L/R#LV"VTEP,OQNG@T+F=-<X04CFR4+6;*0Z2P$&[S5IS\]%S9RV'P*9^8C
M=HI9U*8^8]T2.C$<)'^PVD33G]J\R#N]LH3W3/H _:P'WA'A!B.$!(P0 +S+
MXX$7/@D1/+KKY_#D[(_VV7[SX\G);T?'OP;G%^V+@T_22N5[]09[$-PJ[>K6
M5[>C!,?F129H)TD!+.[,=2\^3+,!=0JBOG0J2@P<%/:[]]+L6F5A,T[3+](6
M.O>R]*0[[$"K!'\%NK#-:3=>M^OGG<GPI4V:DJ8&W+IZ!:^3F1S5RV44ATQ.
M<D]O'=QQQM/4U_@75U]RK:G]<B(C<'BFS70X\-P>.\,)WV!43P=]E0&3 DC"
M&<0X!>8 Z<YH%:'-0WJ&139,C6Y0"U?O@8($VWSW5HPU</JH'G)!#5R:IQDZ
MZ>!.EVS4" 9JA*L,,;_2C<^:NJ'5X-]I$715$ESJ1&<TPRA"(HIZH]O@@#.0
M)C9A.\U>I]A*7$!_'<7Q^-B6Z[2(P_$O.SJ.])4>_UK?# ':$]^:G!IK3DR,
M@96CXW[R%\;RQ/7&%(.):P$>$U_5+7D83UXXS'0832[8]/$!]DL9\95@VU'J
MUYL%*>6-7:DLXM@7TQ 0MK1U5QEQ8^ ;@R@!G>QR1,V&>5N,Z3L@;A7,I0!E
M(A/+&#%*L^*>EL[.Z9^VKS&NH\B"7H$.&Z_#\U!G1'M)%T@[SV IE.:+U]J&
MK=HTROW!,<2VDSJ+_E;NR?)40#[E_\)54=8M!MA\LJNYI_(M.WH4#OW8 P,<
MB[YM:V5C;B0%S)X&2'"#5FPKRK.Q CX@JH*G01FT=]>K*Q7%1$,>OR >&"57
MV X"IT#1 'E\2A:9+QSM*A*1#\AV&S2E#W[GV<>XH##"=*@BSJE'_ "XG(F(
M4JDW.)X%;"U?9-P&%Y\XD#;6Y3,Z>H3=>7'IT@-_-6@;XL8-^A9HIJ!.^%P%
M0Z>1WJQQLTA/Q+JH-7]XI3.#[^H!"FRG[AM8BS',9O'UM_,V)6_"5>*13 L3
M]+C%"IR@ 7)F[/8J7_&YX34I:O!/:_;.!BVLJW"*@]T"@&=R_;3BP63!4 7'
M!'1MNEG4*7NV&Q&6-#8')Q8(W_&[PSB>A'W,@E;;39";+G)6 R!16+7=J5#D
M+FV011"A,D[QH#,@4 )A5WBD/H0;[DEU^\#<N9-PVHM 5XQB3$2Q'>>) [RE
MIY+*3(],+IO([H#2X3T#+;0!*V'"Q(N!$<F3 )X9(CUE[F-4#.MQ*P1V!(\%
MKDG836SS_#0;XVQTVUO>!Z@&"&I/WBLB!JQ.QXD:?$*,2;L1"7VJ9 A3W*1K
M5BVC'1 UB&#>(9!UEW_TNEI3\H*QR_=VI4+]5\&'!V"76^K")\=8KHB8&W)?
MCA'/.Z/5TXNHCR_W;@8TPRF'E<1:+M*9EF%QT2#"#0S*<EVZF]H"SW-?9N&B
M9QI@!,3),A;.&8BP H\3CB: 9]0<!3D)I##B<%_\EWJ!BVA$7D/XK1PTEF%A
M"L*)M6*>3"J,!M9,2B'^2[0PIK$BU)TBBL7/$94 DDB.T1JS6JX!"10!3Z5F
M_?5\&%:#^*/A#7R"QOB9S^/'Q @WK:8OC0QT(+77OT5 F:0YZH_8'CW#!PAK
M1%Z*U6%T:6>$ISR5T0@$(:!%0XV_K49MF1XJ@_A 9@<Z9!T\$_SA:0,FB4\M
M)]^ C@746R1A02,,(F*GMG'X+;M>15BCLNQ/L82UQNJZ@8BC42JY^@):6!JD
M'4" F^;"LW)JP5JKN8MTICMY9,9450:M<YZ+B!G#I8;GW8N_IEV6[MQSO4A*
MM3:49S]NM^<?S>.RN?2X/(W'Y9Y];OV>EK?UMIU;O\R#=XY=(%E-6PW>?SX_
M.CXX?_3^OK/:ZLD5)LCIZWENS3S.&%"3F&(!<E/QY"J"O5!1=!R<IW$A2:A'
M27<51S.3BH&7.M7".CMTS2Q:T*^L'XIUL,LX[<"#.VP<*YSG@/(%;'W?3J/A
M86B, ,UH,.S<Q# W9(X'N*&HTI45&[MB4N] ?TI18D<9/=@460^E[/A+\WZ6
M%I>LR   "[0":*!0@Q5E^(=3(>DI,?R1&'$-H@)YCK.</X$*#JA[O?4VZ&2D
MMO=PD6'1Q>0K5DWPGO&+WQ]= (2VWFR@D@;&P#5J%7A @?,&*Z]7W_ST,NB/
MPBR]U#0"+[V)0CL_J0=Z/FP/%*R<E9 "C9/WL"T<SITFXGP(+G2W+[X4B\'R
MM18_J\$)*L,"/QY_C>6BAA66"IC)A(M D4=;E#7*-(&_.Z.F[)EU183..+#M
M0[$/Q,T(=X6OZA<#0&<^&EL%7I1=J@3GMB%E&("^R5E+W0/[,52LJQF@8H5&
M$BXHP*KKQ$*?=510?KKHO$3O;YJ#J9#DJ\$G'*(C2*195'DDUA_K+I&QI AZ
MV! I)];JJJJXEEMF]964NS3+4A-=Z=42W;AV5/7<;ZP31CGHV9I_"M4 D8Y*
MW)"'Z65HD**%%$T8*$_B 'H2OG-2<X2(5Z >F)";N:1?F=:' $?K &D<+OA@
M#\BI'!!'Y]&'TS$Z#PK# [1![P=Y9 9 /=V(=%#KUN;Q@TA'C&&BAL\)&8\4
M1#7!ONX!$]!!.[Q"E9<:EV@:F7/*[D03M&%!W?+$[;?/3MO5PU9EMJ=L]2*Q
MC=UZ4-[HS\\KS[!CU @XI.24G&$]X2AP )&C<#<5_'J"H> EF PK#E8'--'D
MAR#-K=<;'A.2'R8#&QH4,_+*E@?6,3J<GPA?HQ%$OE_X#MUD,B02&5O-,BPG
MQO'M^2 UP[Z,'2N1!4 F;PT27DP.+@P >$M&KDCN-SQUL"\#_QJV_CJ#J L
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
M-*PX.9G#>E.F!RG5'4G.!.:PBU)D^P:A-F1L' %T@C0=W"Z-*&?::!5;-2F
ME0,#;ZUOKKX)!E_?R*;L866S\>K59M"[P][EEI?H>$  2NN-K6VGHZSXH@$%
M74@%RH@6JJX,(]AHP7U,*&^-0>.K==@,OZ,ET2JU?5!DC[CK2B77YM;JJWOM
MMM78V&C=:[>X;FG$+O15Z0,>N4TQUO#0<,C?-?,N=P?R_A/V8L%^)U;J^ALV
MT0!^5@E6X,3<?KA+457J5TK9.AEUU7$/&;ILUZ"'"5SC" #, *QB$NBT? [:
M]$>=+*ITL/(665D2%C&D\'1IIR,5)+;D'E:V>"W GH(/]#0/5_1;&@/A7F9J
M,"B]JMCOC3ZYRP'<I_N' ??1!5Q14<H7/?*OX$+K&%2]?]PW<]TJCJ[^*TZ%
M6&1Z0<0EYW]:MH/G=TW9>A*"J_C=L,0-]4WJ.$>%":Y;N=N[W[6">BJ@>?<Q
M JOG7'K$C#>26WRE;+->*=N<HI1-S8N:T6(S%+G+OC@.9Z^627/+2.PL+9<'
M&?!207218MKMON^\VE/9TEO[8Y@>2#E3*$!23:4*AM2[*!D6E.=([6.Z?K>=
M4H@&![^?!RMCW9(Y'>,E+$*!OLG98!CH+=V>MG7(^8>C@X_[E(4G/4VI^S(N
MANM0L D^=Q)DSU47U]I/*9^?>@Y['BEL'.SBQA_@9'2FGHP.3=V#?]^=W/&Z
M //=05G%-@_4/[<=P=N[6='IH ;CUS%X#4Q%.2-X<M,C:C4HK0/1,=:+T^M&
M@&-+%&7&IU^,J\F!-;#",[*)LZ3QNX(#\66AP2#-6ER#)\(IV8:< QL<[7T.
MMK>;;#A-5B@X#^%CA0T76,':JE>PMI9>KP?$""G8L0P5_GC"A^Q=QCZ%#RH"
M)T^I0Y<4WF,_4-N.O%)H0&FK5#&$[=N Z:6&[#X99,=AB#'/E=3$%Y,Q&U<T
M6@W;.!X*>B%FE9:CF6R2C LF4#6V9B9>)N1PG-+FJKNORTJ[;TDU\D^.=&$P
MFKU8*B0G62E5AL5@"']B3UH1,P+BBF, <9F11);F4"#KLR*A?B0ACA>DD.M:
MZ5DSKG2Y=#F5K7DY2QZX96I[/K.P(N$_M#(*4\<EH N4%W2*/">#_HC+14/0
M-9R24..*?!^E&,L$M'0!/XG&,-E'ND*047Y]9-*8O4QETPTN.B-WE:9$6'*B
M>8F^4@3.G<R=VO)</ ;;]0)M>R$%FHH2"A+"@=)QL+,>[&N<>Q"TG7]Q*6!^
M" %3:1%2E@J5GOYK+BPM^_LK))>0R44&59;5!&RV;+9>!<;1F$$:DWEJQ**\
MIUO?.<YED69=$ZI.0])<R9.-U^VL-^7]U)6IB4/GJ/X Q56D70/\\C4\6[C;
MIW" 9$WV8IHQA_Q22P(EUF<!CV.&J2,[I@U>RETP,!E$#Z*F]]USX6ZOZKG;
MJ_OZ0Y?%PM_D]WR]]'O.P%G)#VWBW[NHGMDOR,O.WTREEHW[^C/M-?*$W0U
M[7>2Z_?O?34[&_64^XKMCZF=>WV%VNY7M8DQ*#8Q43T=$##M5R +*Y\)O?X7
MC%[OFUGAXKYR_?'V\M@ZT!(-=]E+G9(V!3./XA%PK>K\CGY>EH!D!F N[V56
MCEVF0F^V/='V!>4'E#MJISARG2D];0[S(/;<_'2%22\<+'Y/_>C?@^X%NED;
M*\=SJF[&.LETA-6HG+X@3E3N$ !JV)I]/?IB\6X[@<7IBDW2%6T:,8W? Y#J
MV-:N^\K8  MJ< 0N0,FU.RGWQUNSW?34@UT'I46$3ZVSE,875J,ENL5*\:_S
MPHBJ^JT-OI 'VY0#A*T;&&>G5E,7+EM)'GL+XC33 7G7T4_O1E&P;R/R9O:P
MIX1K>@Z:G@>B0<VW,BF*,D!KF+A-1;ZQ9*"X.4?LIG>9,6$V<@/+L:O.L,C1
MP<6>]K+YGO-N$9+%N[6ZB(SK:;7ZU_5:_>O[^RP61:0MI']_CQGE ;:.UU2
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
MW\ 8G84UP%H'(#44V53&L/+Z)4H@K+:1%<%5?;1=I&B[_050%0<GLJPT#?O
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
M+^!^=&Y@<3PLX7?/PYU+!)R=,'8B!>E)>D"APR);0O6^4/5\7TO8/8Q=AFJ
MWG.;48LA"8ZD), JG?]N"=U[0?>]&^!#IAA>P[,?R8&_8H\_9^WQI!H?PO.>
M=%\_:]E+(SBKMJG;+ZNDGD&STK+-U]12,)DS6?;MCP:4[H9E<? D6S&;<!N'
MD1>A<FV_)@=W4CD^#QMW _?<I(NZ@1_!V=3U45<KKFQPS51,P-TR]W67BP0V
M6PV:!$JWVXH!VR_H)D(#*1X%_[6YO4&1&+SJO[9?;^*'AHW$T2B:.8L_56G5
M2Y<O)^,N3,9+28RN=# BE]*?$@9U#8JH[X7ARFJ[8YJN8_=LZ:QLAH--+GD6
MA9;\)DWMU6K:C+@&6CE/*V;.1BD+E=>I(N^G&>?<V6QU:87IR--OB8_Q)Q5+
MRE[H5<U.-.RLYHZ=E%4\4L#B1DT:[I9!E2HEG*H#7!2U6:D"RP.5WPF$P35J
MVESD("ML/5#F35K&SS1CL_(E-TB0[+7TEC6O^F4=666",YL[(375I](6/G@$
MHK*M4(8C9CB]<1K;<AWVI".8#?17RIJ\$E_;0P_G^M)(5$QEH$M\1#4HDS,+
MFYC/R(7!/ 30X728&FK\AJUVNY7YWQQQK?;;==%NF<3@X1!?FM!P^%JLB=O2
M3E<EUNM-!"VS!<K(_GARZ_7XJ$([^SNWE14N2"H,T :B2TQ[XQ'$ZS20AHHI
MM1%K2#23LTHDJVNB@]7(M6^@1TL<N4]Y.-A-B#KTZ'EK$%5EO0=V]-""L5ON
MHO&)SM!KDI&;93<-[H84K&RNOPPP ;5)F0>NQ*Q1'FI)_U8A2&S!-,;,W3PF
MOTZLKKF3C&BT!;U<ALBS/?$4LZDIE?-EZ6"%B7HERYB%X-=#=D9UI9!4RT;#
MT,H"R-O+'N<+FR4!MJ^ 7]*!/"K[3RP"#6YLK6X/<\IRI4;7RFVDAYVM<'(*
MYTVB!,@J=:VN!1!0:P?G.C2"?IX/S>[:6IX.(LRK6 6.ML:EJ>TDP8Z<9YK'
M<R68L#8 U;SY6R/X5Z&RG(9G\\_&__U?#3=8:?S7-W@SJH\CBM(Q[4G3-8SI
MP>>0Z9$8,W5FB6+J2@2LS:1(LS3]TL#YZ5!F&8D-VC^W@*+:+,>&,=G0&;0\
M<C6RLV$I$YSFEE)1:)ZR^G+.+8EL(=3!#8^,H]E $4TE+(N\#O9</TR?CFS6
M%A<D(# %X%9J5=HQ8?X8EC%0K4*14+9*I;2)0$51RDQ'\Y9!7DN<$TUX 5)^
M<W0'CVJ.6Z;='*,Z$F&%TN\7HSII(?-9,Z\N#ZMO&U1'B]@>IX!RG,O!'E?K
MR@!!FU[I(>OZ^GK5Z.XJ:!1S!G=/EI(70Q* 5*XN7]@'HW85J]$NP P;\[\(
MHO"7%U%+ 8*P_6BK#4;BT?EOP6%[[^+D['S5.3KFGPU*XB#J$17S1Z9C IKA
M.%$+0,EVQ[YM@V%NNY\2OK/(8),K6R+F3=[CL48T1)>K1&Q9!U4*8>2;;^/5
M6G:#5?U4G,.L"RR=RRAA;3,!+A4-.3?Z/2>G6Y4AU*8+(EF:&8OX#*XB;- &
MW%QGU JZ3*6F53/AXI^NR,IH&M$$Q$W9[U)QQ*G7E/=(-SI-%M.,*=G9UL-P
MW9%4NN":N=:EP-X%/2X*X//!S\&"J<(8;[#2=(F!<S18[4Z[P%T;8]4S-74R
MMJJ?@(XZ3FF_=6T3O1+L$ZNF%/0>+XN\%FA@\:M%WP^Y=RXU$A<5JF3\_(I0
M=VE0C&<:DC<#:"[@?O4!-3"S@P&-MA2%74 -(T4ZY''K<,R8$)-CDIEY0B.[
M14)(U1S?;Z5CA:<]RL"]'SNO<6N9USA3F76&C.NL[/8FPQ>I:)VZ.@EOF%-1
M5#5DR_'T7#@\XF'-QE8!>P4=UMF#C0$UEXSVHMR6559Z7ZX&"V,7EX5W=LI=
M2!U&<X(")=Y5G<8;JSOL,-Y:W<+AEK$__.&NWNB*C]G-9^@K+@\#9C_@;AC
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
MSFSRE;"RT=@UV7@+3$D9]I4<?T*>['&422J_B(G[A?KS89.,C(1FC"I*94)
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
MVY$G*'HQ:^JNT'6H.)O-PZ58KM\X B^A?,(_Z[UA6Q3D"<]?/92+"#4]U<#
MG#6_I3K9<JUSRWN3>S(.$0X@(O890B5,P:70\GG#H-1DEPDN<[1GV>=ANB@Z
M>I8R1FK.Z%3?9-O<]='F4^Y1%YKDQN-59P@!M-&&;B6_3U+CW$U$=E#$%1Q@
M*=T96U7AB /<M7)%>^V[EB/T3-&<E7@"R'%.C YZ#S9%JC&K I,.EO713?FU
M#X" G>51;#531T N8&WRSC7-5(M"B-$B-Y^EQSKG6VDRS(.M;6%,;[H#&^9
M:.#6#J,$7>&.H*CLR84K?$N39)'F2&0_QFGGE<9;+,1&:)*0]).C9&J4%$(#
M3D:3)A5$4KPPHTSB>F'IEY;V \FG)MX!%Y9:C.#YU%J+[?BAB/4I*L.CR)XH
MH9),+6B#:=7T1IA%(._K2^(WI.&FDSR5 N_<Q!A1^;'"]<._TZA@Q*$A!Y1"
M],X5;?CV*\MFX[2,*7RU'?PCR5/W>L5[I?-ACC2;ID1&_7F&$VKPV@G^66\,
M#_2X2+"S9^H>5L?9(PW-=QT"ES@P87GVL+V=JQ<=@CH'>&@=AMS>I.9R)97D
MLUPZ\5$6V%J KV(8+L#F1>;UN^>C_KX3?"^&!-^=Z^6W-MU/RL+I$T4.QUM1
M.<=Y0:1,'[1A)5AME0DQO#W^<&0C#)%#H\O:H1%X9$)) D]3O5-=(7VN7O^^
M!F)-HDJ.69<9%ME=#N8JEXU+-:[9#5SB/BTM=IZ@/DJNK2)9JRDF/Q!(LFHB
M[L-!KU)#>S:\>%;DJZB>YS[22!&XB):64131[\S"RK]U+TBKZ)5&6:.MPKIJ
M:BT6=;'(!4Y'<!=*(Q1D6O,/!I>&MOB<PDGR%B=6VD2J.,D@RHAS'9\3_"1[
MO#(4\<*(S7DIGKYUOQV60PSS>\8TV (7:+8GUE^W367Y06@D./&1T=)N@PUU
MV%*>KON<R=<N]?97<5KYC,Y-;9*BB=-EKGAXT!CDU@WWP3!"-4S&TN3#'H:R
M+A=QII2=DWB$QE\F11VDO3HN?,HONEEB,;F-F>+>Y-91\[G70F=W.OMXE:&S
M:0K^B9BN62AXMS?%+&TC(%V2<M\"C;/+!#XJ'+^=IJ%A^34..I,4^MW.7/=-
M6*1]DY]B7H_(T&\C;6ZPEC;S28HIDN;+)KG,/?58 YJ0"7N_W7@5CJ6X>4#$
M1*81]H,6GX(/.W/Y-ZE#FLV=P7H WP,S8>"Q,2J<CF\\H4CG:88!)C"5,<O[
MMLXNY)\4<LNIPP7^ DT-@W9QZRT8[PD/-9?+B=PMZ@*TA^FT8B<4*B:%&3#C
M8D]+CRS,V11O.3RP"MXHA+ZL-=CVI=60"6.F,JGPE;:-V^3[NWYR1?&$3L'
M\V4UK<5A6CY0H;6,+*"(8AI^6V9RU^,)=Z)UEM5293I0D.W@ SD^C8R9<58I
M7!K'GV X_ZPSSA]1-<K4WB&XF$@DS_+/E8G.O7+]D:!*/MFV*<>HG$HJCC2H
MK=18OT:;(@8+5$Z-@:=_G&0*L]B2BJ?*O%'<CH'UO"GY>[K>1+@(W>SR*NG=
MF7.W69= SJ=<LHR*#O"B@72QS9XJ;>6IO3E-:21M%A8X$J5SA; 1E:+FXW+I
M?>Q\A"JIW!)ZE'H1%$2$:>D'!T,X=N\-6NC]QM<U.MJX&Z9 @;3;:ZQAX1'
M/Y;6C[ E*']03REF ^Y8JZ]D&:#4)P9I09LNU)3'QCO^6_R8>EW&1BX;4EAA
M?"9)N3#FY]/SK1'I/L'DA:CSKDR%I8%V:N,:_Z7P+XDNJV91O\9\D6L40/?,
MDH6S>D)*:<_+30BI708'K<RGT+1?[21](!0DJ+>WU?/*?4GZ/C19+4R99G0/
MTI&3MMS80T$B&DIQ+)A)FW IRV1$6)B2>AHN!%GH',<%F@P8M7>:NX8N.:8D
M7DOD9)9+Z%.67VW-\BLG"\J;8Q8W,F.WR-:VSKE;Z9-*BFQR%X]WL*DN99;3
ME<6*F"<=IL&]^#\,KF!::Y.G(%Z09'J#1U-MA#Z3,R5V15UE;_6[L:HR:HV
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
MOU-X$#5)(<B@ 0/2,YR['#8OQLZ2&E9RBF09%8U[+_ 'ZKM-*\I)F4BZUGC
MQ"C@V(L2Z:-"TEFVPU&DR5=.^&J6<R64Q8!P.-)9-S;541!8WS'6E<-()GQI
M/^]%[G@/5)D;'+NB<FC\S>?3R$6!L:)(\]+1>\:=-DR3]BD,<C#/0<A'[O(?
MF'X_3GP YYY1/@X9+:,1\LM0\G#ULM44PNLREO.KC+=.+I=$Y89HI+BL.T20
MV:+6!'!44,<S<^_:7I!*AF"4'!Y>/=6,!332V,@(^RO%RV@Y;\2VQ$=EW RH
M*85)25$(F4LWD_V5:/$&SN-;J-Y[Z&/FT?W*16H#*3=NZ=D9I7D\L;:CDF\E
M,92DZ1:5RL072\O&:\TKP@5PW-7C ?;ID(D-A8I0D-+$I9*U19ZV20UYL.NW
MP>E:H5PH7&NA+^D@"SPVV'K28W$FY#&QAWS"=X%4S$NAW*JD^(SKB=#>NI;9
MTJ%GT&G^LP:U,$G&J]68VM7LM[":H(B^0M\\?R9L&(TWB$-*Z['.$;EUNEXB
MO@2G2]AF74MRM<6NQ3%=&/IKQ]@HIELA**;*J0:[ -.HR1AA<T2K<:6-6:3M
MBHR1%'G!:*0+)&>5+^D=Z;B4C3O7)QR5(LVJT7B:$K=*R+%<Q%*R36]V3'C1
M,LZ7C,,E=KLW$C=&ZQ3Y:O]R7.J.VM^\,+Y(Z8P\-._";=9.4'F&C0T$&J4]
MY'+LH* _/:#Z_[X!%Z\&P,4]76H?G +/QEWOG]%5^KJ-_W5@3TZU*::RV1X5
MC!SC%ZJ*C3H.32CMHE?%[!19N#QQ^ACK6EUOH;39$Y1/U, 1&RI.XC4.]$TN
M4F;G)$;W23Q.2HOOJXMJ#9E26V6386RQ^*T4G74JG*"4)GC=GCINQDP+MV1#
M]69:E0_=#*NL9:NV^$>,+TZ=R40@N$&97%<&UFTZ*]I6!G"7" 06[P1"WIG(
M8.PL+EXNU#*K<$.)("+&4)'RI@UL=G%.Q3UX848:R9+[V:V\ULY"=:G$[Z9(
MPC2$ Q\>'H^.<+IT@R1L\/H[1>S.I7C-Y).*UK ]C'YLCLJ6@VJ-(9;H);!S
M/R?YOVHLWWYZ,LZWP!!A7LOC-"_RSY;J&A16$:$#'5>-VE(X;A-IL11M@:L]
M%[I_^8PR^;G-X_ 47RM2*C49=Y2C"A[6,T1Z5C =/[5V-(@.Q'D3Q[5^V5$0
M:JIH\+Z[#2%"7&!85X2JE4)HOT^3/MJ&'6WEJ=1-N%+."%0-B#GP8<L :FM8
M+6K K29& @5NI2L-<,$8SA!HG!H\KN6VZ#C5BD07T>E84;. = P2V/-*:EML
MG8^IO+5S#?UX7I$05[)X>2ZGMU^+%3.9P30N"@0Q&7#^.$W$ '70S.2>\>Z0
M*!6QM"_T=-DH*HI$*(Z017OI!I0_Q?'"X?1P)9%OT@4CK54RW#+F]_XMP]^-
M%3R"'=5,F9\YS!3!X[ )13"9I(_CF!2F;75>X&YAF=.L$1Z6,_ZYI5W6Z),5
M=0M_=&+FULU%E4OB=*UT0DG8JC&C/#$I?G=%O:>)V)?,VNW-1$'T&L+D&\12
M5HYB1,/#.%-J"P(KJ0%]*MV4/QO!M=BZD)1I5";,,EPSD-P&N>A%8$L1OQ&?
M*K]K8ZMVPJ4S],]K=]G$NO(G Y UD!IMNMF6LF9 [>O3(IM9:L7%I:;\N9E\
M4VX"Q/9Q, 1-8LN\Z>$^*0>9.8TU>4D,I%-,Q399:GL+-\Y<D<3BF-)\%&H
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
MI"<8YPHYZ33A2+34DMA>X&-Z4*.]02<1MCNSU^Q,E2T/2BR;LE7/VG4Z7DN
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
MGG7DN%LX5-R?29"!DTS(B$H2M0@IH-9S\X1HCYR"+7R 6X^JW1*II)B'H:P
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
M8D'(%B[D#(Z5@E4B^8EQ:MW'&-@IG@7P<)-((^$P&23?%G8/FAI&J@O?0?X
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
M9LKKD?V0YD)QA:Z4$48/QB+A_!P!X$_ZUITO+#I4NQ[4*:R8XW8I-NGLCRC
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
M9].]$M$[!/<*\Q^1"D4RL<//!?PL#'K$^;#-47)+E0*81AKGW0Q=JP:@QNV
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
M"9K2A3$T%875<>A$ST/" 8&TO$4I,3;F5/,L!=T*#3<2B4P-59_:EFDTHAU
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
M.V;T+@QSN .K/%+:"XU-[G,@B6W!IZ_JW$*T"E/50!KG<-+[GA2)2K4GF,:
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
MR;V')T:,/QS$81C?(3X<=O?6NXU#@;O()K[7V@7M&@ UECUB]<%MT ><>9-
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
M08RH_1DQPJL5\WG1F,<M);T ?C%. I9+/^PU6OLHR?C7!!SZ'B"1DG^$\E0
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
M.2I<C6E=BHY*HP-O697!GP81SKSCF<+QG1ZJZZA42!-6N+A*D-G+Q($:&#D
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
MV@H0Y (L[P<HM=0 ?DF<H*:%2M%"134@K#VL-,%V@!SZ<=X-Y;NE&.4/+;<
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
MT1@G/P5?O:639U4%QEH;&[/U=J!9LRX-8JC]?RND,5>A&-$ YV(P +GS46:
M =_CQOZZ?J.UR_4;/HHRE(!=F=WAB(&B6*.O3I*&]ZL B19Y5T,1R0K!NPZ0
MU";*BZA01'W[Y91];%(:W;J\<^T!71^@/D U[M7+5LT[1C7?J57S.< I4\UM
M4RKJ!((:^L.Z^7G0^^+])FDD>5HA:->*>:V8OQ3%?-/;+M:*>:V8UP>H#[#^
M=_5E*^:[1C'?JQ7S.<#1R3E'XW$<1)ENE82:]_M8)'W\[B1(9"^+DQ0CPC@E
M%*-+^*#^XD5UI*@U\[4]W\9KYKL;+J(JD0>T7Q'Z^<;U3.K/)Q'E ]'+\@1[
M#5'@4][*,!ZK'$U5'J;=-:9O*[<0?UPH]?,OWB^ P7%%0%;+@EH6F%[CG>9&
MRX)-#Y^NM;FBFI<>T'A(.[*HV6H>M [D5T"?-ET.7K;I\DA G8[&83R9%ER$
M*!!=8-C$:+N F:+S@3@=Z. Q,NPT#-)4>+\U.!O(G:M1?&>+WUDA?-4%#;6X
M4P)A^V"[M;&'VWQI5PG+YW 3*B"TB^OTJ^SEQ,7_'WOOPIPXDK2-_I4*S\X[
MW7%D#_>+>]81M(UGV,\-_@P]L_.>.#%1H,)H6TBL+G9[?OW)K"H)@84-,L(%
MU,3V-@U2W?+):V5EI2D/':S6$] 3.&B1NM<.1/J1V^0Y@:)*=[SMWG%X98&B
M?8]YM=5Y48M8"<C(E[#R$^E*_+[R$IC[+W@-^-5,MNC!_.B4\2\]9CD*$49[
M"-I#.(HCS]I'4%NAB4!/H<D#/;6?W;_=Z6FQ\.VOD6LR<8-W\=@ODWA]B2[A
M$^JJ=C"Q1@>>'JOUS'[.KPR0_KG0/-#9%7,_,:^]IDB"2IN^5)0V?:EX4 IB
M>7K]<.A;ID4]=%;>)>/JD"(.>@)Z GND5_Z]MSY!:0<W)>4KD6_=1\9S7%M!
MX'H.>R(?+&=DAR;?6B8^=$6#T&-D1N_91\U!>@)Z DKPNRI"6#V;N1P9E>7W
MM9F'+HC4:1YF<SS#R_AN37G9VN7$8N/$]F]O#+^"@)^%GA_**W?N0IN)213+
M]+18^4 _BG^Z7O*WJKGPF[#)$UL*[>^C"77N&6F- NRZV"Q71%T]48MOH<9>
MLO\^)AC!<,N%4F3J]ZDWI [S3WO?;5!!LL52H5#2IK^>@)Z UCK*F?[/97(I
MUCH[D5KOH'5*+VJ=:\NASLBBMM8Z1R$R] 3T!(Y+ZRCHZY0B7Z=T5OSA,-5.
M*<W9\5_R=C!':1V=5&R0KV?]L\NS6#L4R]7"JRJD6:AI%:(GH">@P@3V3(6\
MO^."::*=;G_O]<2_/]_=D([C!R#@&;ER1Z$^VZ GH">@1:YR5CN*W/[E;X<A
M<@?TN^NXTR>PNP/F^&@0]T<3-J6:;_0$] 2TZ%7.VKULW1RLZ+VD]BBT123^
MQG*^#:G/-!?I">@):$&LG U\U;Y6A"Y;EL)7;&PYEA;">@)Z EH(JVT-W[0^
M*T*7+0OA&SIDMI:_>@)Z EK^JFL$W]ZU%:'+EN7OK<=\F*B.1>@)Z D<H1C^
M.1BZYA/^38<VV^I$>8M1<T/7,YEWZL_HR'+NSPN?EMI_M,Q@ A\+/YZ0$;/M
M&35->/"?)P44_6*,J2IC03.(5BH_?LI'B/X_NY/7'<?$I#GXG1+XC=Z+^E\C
M>-VCF+#FP>?I#*0X#5SOB<QLZIRMHV*7;Q'+@R.WU.8KD\B7 #^\'[/^)_0#
M:_P$30\FC%C.V/6F0D%;#JCNB36T H*YH\2?4-LFCAN0(2,FUH@SR?_\T"B5
M@+\LFYG\<_$3@18P*7+F^DR6CI.9DPV2)5L?6L-WD@_R+UTL)_=H^<#UX? _
MT$=T<X]MT:%EB^9YAS0@OAB# </WY$3@T:?$3"QGY,*8/5[S;OA$/#9F'L/$
M(5@'ZCP1F"/>% '6(O.69S$??/G5P4?'I[&Q8&+YT!-T&WPTH&F;^?YR.3U_
MQD8\J=6VGY*C% _"8K-[%]M:)!U?"Z  ,67:D[\PJ67N72F9MYZ>#+-RG?N8
M_>0_UY3AG*N>]?I&<3ZRJ>_#][/AQ)O+A0UDPN?>W57[[O1S;S#H?3DG0QO\
M"E*<?2>^:UOF)S)H_WMPVNE>M;L#L3*IM_-4-Q2F/^%Y^].AQ^BW4SJ&1LX)
MM1_ID__3Q0:BF4WGZ=0_#'J7( 8X%3!W&A8<@2/RE/'!G6CRW*'W"V#*B:A.
M WI_$O5H6CZHMJ=SX!_@=79"+/.?)[YU?W+1[_S:;0V^WK7[ %EX_6(1N7E,
M/U-3)/YC.0)F%K^L[+QP5K6<DXO;1+(ZB@^/_3>T/"8$Q%Q61\>P4'X5JQ_,
MCVM+;M%H++PF( S-$ 37B(8^+P$:"SP< HA?K!\!/Z#00AG%0#:/451A0US6
MB@<,43TT1,'&&Z0AR#</EL<\VS8)WLV6K!:>&9/;RP^X:@W:5^=BFN0+]483
M4A2E7,MIUH<84?G';72]VB&1O51SG#?(Y YI=W_OW/6Z7T $MVY(OW?S==#I
M=?L&Z70OSU8/K%C*9?X'83#O2YL'LM@KC(VYF;%CW_YG_V<QR.?__UOK!FP=
MTC\C_=]:W9QCF0=&WM?%8%YFT6_4!DN!],4]/ROLF[PZOYQ0"YP7)[(SQ.VK
M\U-ZST[P;7U\"Y;3BV/]<.N!&V;-J/U\6!\7QY4OZO?9"+_M_=&^([UKT@(Y
M=M=M_[FG!O5@T4PEYORV8 >O#^:HX*:UL$.<!PMFB?8VP*?OVB$_J@IVB#,Z
MPX";'UA!&##^-A6W$I.(,^457/RWK@4^YK^8XX"MZ?,X [/00I8,-.5A"/A@
M>23P0O&.31_'H4UH5,>-]W&/D;Y'>)?,HD)O?C@4P^ 1$S2X71X!X<_;T, H
M\&65?^P= R1NZ/$B__(V,6[$RZ]'%$UG[C*@,Y"^/KPUES#.3VRA-PO6Q),A
M# PMA>+I1*=\!"@U$EU9,J2)H['=1X,\3BRP>'UJF6D+,*5//! $&!@QW\?[
MS* K:CY8/G<&<&R.< NPA2@(@[$6^ F#H^"2\%7<O!H%#@+FZX4V TJ"\R2S
M=<4\ESVTI?;Y%6U1'Y?N=&KY/B<;+ G R9&Q-SDT<+Y:CA,"].Z$#P8_\;L@
ML*(TOA,%IA:"3L-0(,2%OVUK:HD-/$,"AH]?.&/!$ZX&<D)$*5Q$F!N,._0W
M)MD"YJ++BWR"?F#@?N(_/6* BW^#T2V*D4S^/4Q]# J%B$ ?!@!7$%[$ J$-
MC'&CCRK=4M,%1H,V@5T#8!_LP1V?D=?\YS5]Y+D3C [R$"_1D/*#3SWR?\>N
M#?]">LR 2?B1=B?B+MF9MWCOQO-5Y6PFOC5YU#!>YD/PFY>LX1]X<?A"PBK>
MQ,'<@O%0/ZOBBR]IOGY4,#/55%CR/W-VOU]=OO<S1P=68._%$LTC!>^W6%?
MS_%:':B'=+QM9MN&>)69CR5"D/?F[?/ID8W=6?**4ZG$^FP;(*N"T.L+K+QC
M(6=IP9"]DAW[TJ964GO>YN$IJ6[G\O^0?[6[W4[WU_<JAI.GBDJO?I901,]_
M1 TV_[TU&KFA$Z!_JC75.VFJA3B@UE/O+>;V8Q+'W.;AZ:GV3:??;Y%_26>*
M*"*#MZ>JKN2>@2(3.Q[ETK8MWZ<<67SC2>N7W8BGPSHGD3U&_XY"]8_6S:!]
M1R[/R+]ZOW7[[>[[1:#?5<X^SX?3TE$*P3^H#5]PB+@3QV>.%H]:E"DHROY/
M^^;F3U3BK2X,OM_3HDR+LB51]G\8YGD@1'@JDZM%F19E*HJRF\X7\KGW&^GW
MM!334FQ9BMU84_+9G9"^JP68<@+LD(]NUC;D@(,ZNKGA<<HQ?EH0=B0^4KF+
MQ/-UCH/M].C#ANL'A+X^N4!(_IL,>N02AMV[Z?##?>2ZTVUU+SLXI0%\@=-[
MY;QJCN5,=FC3Y']"49$LP]I[)AG>@M!:F62XFP7+N9A75@D82V%,ZCZYB'+K
MQZ0#[M2,\0,CLJ0#\YA);L.A;8V2^^?7EC?UR?][>]GJ?29=]XS\8GT_=URG
M&TZ9!X]B*18@S1WV<@TC -.K=%HHPO\"EW\NED[+Q1.>6P^"@UGGK="TP'3$
MACOFR46C^<O/"TU>_']G:ET&MVW87I^6WFLG<2N5/=\,QJ%_<@&& )<?_%C%
M9VKSFY#Z$\8"?AH'('K%1FPZ9!XI%[E%7^))'O!!L8O1MP^/LD+P> =9-?+=
M)7ST _@K/LK2FS%/GD,:RS(V?S+J^:2-YY:.&#<5A7#S#F(%3SP%3R]"IS^A
M'INX-L82L2I4L?Z)M/EK&DH+4*HJ!*7W$$'C%V%T2?T)N;;=1RV!%F%34P@V
M[R"!'#=@8-MT75X$S24+$)HGK<[!=.AX:.C@X=X&#Z]/BTI$#Z_?M?+;=DM/
MO%[+XZY]V[L;8/T)I,]MFQ.)W+5_[?0'[;OV%;G]^OFF<TE:EY>]K]U!I_LK
M&:E5F +(Y2;.EJ$GMU!:82M=] -W]$T:<FO6L,AME7* P[SV:13CZLTL!^LE
MR!/SZ<HD[T(EN<[T#T8F]($1BO$A7I$//H^P@@5UGC 4-4IJTZ$,&?@B9+ >
M!#Y@FY>BQ8\RS/ $AAMAK]AMAJPJ@F4-;-[_PF#\!>O0C?U3 ZLX/',XA)\B
MFARA)3F.+4E&1Y/H:.83MRAEW83@T3WE(X6V+=?,,&!NFY /8!S96'KC@=FR
MZBK&_<!6H;)L:PRL^:0^GL'R\0H9KD"AJ*:XL 1I[Y&9**M/QM3R["=>^@.+
M6DSA 0\?A9]G,!C?6.IZYOKB1BJY%))D62GFA[:@#!9RG%-'U*6 K[9,A*C$
M"5:]1<^2ESBA\Y#J3)Q3LH$<]\R!T6"*"_S.9@&+"V5\=:S8[^!C;_'@*-UZ
M;8S=BK'/U+?$*DN!MN=":S !A*>#'Q@_PM\,T&;QTL]/2Y"6,L%/5#<_(SW@
MM*6W+%]4(4*.0N!&G!CI@^7F4D>$EUKPFBO(RES,^F<$Q"Z.E)*9B/TG@,H+
MU7CSW8&XC)#<)HC8,GG<[H$7G)H$4OM_6,#Q1_*!;R1\%'5NO+A,C2F+VUB)
M;0G>FY00456;J$<4)-"I9W(=$(_KZUG_C(R9B3R%E;6C:C<V??1C>4!G,Q@\
MMRAY92-9S&A>W&CM6D9QDWQ2>\J9?W!!;H8C)-,<&*N6&.#DF$#9>)G$W,F
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
M%Z]FVB)S58T*WCJ3X;A[66N#PP'C1I<_Y@;&FE&JEXQF<?,C[>\!1GVD7>T
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
M$D?:\S&16&D;41PKCL(JY$,4:/D(HDI+HF."Z9'V?$PD5M$V6D[LE0%@,H\
MJ[!R*D-T&[Y"]JR!I<!\QWD>PG]S^8]&H6Y4-SF=M^_U8/8/6ZNAE3T%(#]H
M751J9:-94B]-7&E;<6D72!$$'S+O9-[N?\X[$=DLECE=IE@M&:5&43FF.=*>
M\S<+2IGW]O/ W]P>:-:*1GV3L]('$D=<DL2W'IM1RXS.1NCLVAUPQ!OVXY<Y
M0I+O;?GJB1IY%:/>J&D;65U8K4;5&S;9<T'51;UNU,OZ\%J64Q#,,5V/7+&9
MZUOZ*/(N9'+F'?;GW!.1[<W2N%AM&)6:%L<*(VHUH#+OG&\=4!?%0L$HEC;
MD8J2^'W,8UZI*1%'UK(X?\[)7$+\.>=P\B6HE]F4 5]1P0.=1]KS#LR!S#7+
M<\/@W"PHUXQF5:$$J/>QD85D%NE/BN#RH#EBB[M[G'1Q"IL@X=N-97 W*W6]
MO[>?Z-KB!E\^Z$(3NG+T5T=$JTT^1.NM<[R.+0'H2'L^)A+O@?D7YWC=TB>=
MX+4+O[R<OI'[IOPN2;S,;GFA;M2+.IE D9[SMQ/+Z5NG;TH$>QL&DWNGX("4
MCMA$C 6SAR6[=$+!S@1S^LYO5L&,U$L<)<M<>[%B%)KJ)4<>:<_Y@S!] S6K
M9-X2"(NUFE&KJ!>XWP,#^XJ-F>>!(+]C#\P)M8&=/PNE;QEGDN.7H0_=\TMF
MWK1U7&N6E4SB.=*>=V!AI^^^9I+C6P)A(@I;Y/<Z'[N)S:\4B8_[*W:&XG/O
M[JI]=_JY-QCTOIR3(HS:=VW+_*0,N[PRPBWQ4?H.\FLET)\S$2?VVTVA9%99
MU:B57A?IMZVKJT[WU^0Z?7H+8VEPJ@/.],W<U^JD[P2<1:/0>+VX\[;!J:)!
MGG83LKP&V4J_!EEK A69+7UO>PVS'LB/U(^(__D)B=]QYGO;,>'?SG=&J5PQ
M2FN<C]9JX7"1FGY4= W;?X=(+1N-4MFHK5$![%UU1,(S.# ?5%GO]]"F>XP]
M'Q.)U;0YN;UY;;N/!,4_P2/7_I*9J?.]C@FF1]KS,9%8Z9BGR#Q-W+1);FG
MG(#7/!UXU&3PTC=]:>^.-@@J&U<OX+&C!/T$^5J.&1./T^[M"3@%HUK/=W-
MHRHO5&U<O6!7J"J6:D:M65=GS^E]JKO>AMYH@MM.[ABCD>#8!T]< N-%C3/U
MK@'0(1W!5QO7->!\%5&[-XYH#8P54_K-/%4J%(Q&_?4#Z3K6>+C W+@^PBZ
M62V6C%KM]1Q>54*+.]I^FN\ZI84#M.!7D;\R5U%8$<N/*;_%6'ZI4C0J%:T'
MCAFGF2LM[!"GM7+3**]1B$D5M7!@[J>RCN^A3?<8>SXF$F<V,^$K&!P(PV:\
M0OF8G&+$@PDC=#1RI]#G$QJ;CAO *]2#KT%W@+:X]ZA-9M0+,!X1P..@0[AR
MH@$SR=ARJ#.RX!$_@"_0-?#/R-(Z_!P,7?,)_\;C?UM=;-YBU-S0]4SF<>+"
M5,X+O$'>-%EN3N*A4/@1E"+ <49-$]Y!U02-BN&FDN\D">7);#CQYN-YF? G
M+]@D0QM D=#[9-#^]^"TT[UJ=P?G&!M*JOH1+#+S  /7I[6U.IVO^$\S>L].
MAQZCWT[I&%HY)]1^I$_^3Q?K8%>VQJ87OU R\5!]_S#H75Z?7 PX'0 AEVAA
M.+@_0*$E?%(!'"06SV;C($=<;,R]U[WNX+3?^=\VV# X=\*_N&Y]Z=S\>?YL
M>.1+Z^[73E= @J1AXA<_\%SG_@)@U2'M[N^=NU[W"Z"H=4/ZO9NO@TZOVS=(
MIWN)7"J?79OT"LU/T/X29M.[Z5RU!NTKTA_ 7SC7/NE=D\M6_S=R?=/[HT_^
MYX=&J5C\1.#I0:?[%1Y]V]1WJ2[RMS)WK?\GYDN^SP\%_E\F'R@"R9Q6M5U
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
MS:TKK$&@2KQ_R01/ .BPP[-ZT0\O)IZ=6^,_?"PK6%?MPWP'Z:2O76%/E1.
M.ORS)\A:^TH=58X2[EE0?>N6T]6\?I,JMI,R!L1!&PU'VO,QD7BO[4)153TJ
M?WX:';$3 6455E=E&+\YO[*<N4B$@H=3C@H9!XS)S'4J%#Q4HK0N4, N;<LZ
MA>.TLLR* %Y95CNTZ1YCS\=$XKTV5*.B[2HLI,J(75O_GRHPEV/L^6#HIZRM
MLXXXD67'%<&$1N-^KZ*FWW$;)TNW62B"C?52=!2 ZQ:2B%;B.#6+YY@DA$:!
M(BA0UEY:M6<I;\6(Z^_)N)ZX\U8QT^FHX+TR=)NMD.H:M1H2T=OB^U0BT7+[
MF(&=K6+K#H&=O0B)\JIHE\;VNMF+_.YU47M7J".=57-,D>PC[?F82+QOUK*N
M3;*3U-?*QK5)HNR$Y6OJ=+D2C;*5*-NX7,G.4*9Z!1,%K$5=VV17;+)Q;9-5
M;*++G6B<O8"SC<N=[!!GJ@ODA&U\2/Z!=L2.8:$UB97VM>.SW\7"R7M9>UTW
M@,6)T@,-XHK,'GY)^RS>EQ<70T5ECYYXL1CVK%C,TO7N6#')<7EE9'&!O.6\
M='W\X_)%5;(L$_6)'XXFHAD?7WIT0]LDPZ5;X\^6*))6XRI9,6F];[8(EI?K
M,6&#>=1?BBN/S(83;SZ>#>ID+!DI0QM G=BG((/VOP>GG>Y5NSL02$NK&W)]
M6BRNU>M\R7^: 0I.AQZCWT[I&)HY)]1^I$_^3Q?K,)]LC4TO?J%DXJ$-\L.@
M=WE]<C'@A #H7:)5Q+-B*;2$3ZZ&SQ:!L+)TU[ T'([EH2;XE9FM0/XR+I:&
MH_H6A%=4OP77Y8X],.B%W+&1>P]V&HQ%KD*RKLNNJIG-Z\_%EFNSF;D(@)Q;
M8FJW@-;1TP":^FR#-#LAS!_1&6YV>2%+6_-RJ5"H-=Z\YH(=+)"6P."%LZKE
MX*5\O!0=C.QO_"3( .*1CD8@%Z@S8N31"B;DVG+@'Q:U20M^"1U>DZZ/.V[4
M,WWRV86_R(?K5O_SQ_0GOLY,&C#RH=7_^I%TW3.0S,7*::%ID(CX8Q@O9P0T
MOWW1[260R)UBC?H/ W<&!*D5:A_/2.JH'R<,)#(C\+[C@[K <GM3"TOIW;M8
M&P]TAL^\!VL$RX.%\..F<;J.+*D'>H$&T.389C@(H24<WS*Q8 ZR"+P)VART
M /3$OL_PU U\!2H %M4*;*%<V/?1A#KW3"HJUV?/QW!&!B[X*"!-II8SGX4W
MQPE_>[2X(/-1/_*J?^C_\%'.JPR.^>F?@,W\<_+!^@@8QJ&-GZ+)\.8^^!]%
M@S1N\A,\O?RX[('CP!T"U_!%P)=C%2K:XR_#V_,)X:^<%-()G $_,7SLX2-(
M3P ^PB'U(5S0#3M'5?\!&EZ!B@^PD!1G# L#C?BOS>Z,M(*X==3WC!LC!C8
M.HSY AG/<15##M<6@4 !*5%#1O0NC E>]\2O"RA--$8L'RP2D% .# 'GER ,
M HH#%2V;]%GX9[N3F;F(I2GTA)4PR7]"\W[*',YG,;Q  W_D-)A?(KIB'<B0
MXNJZ C)1 X*9P1S&DIK *P+[=.@^,+[8$8G$6J]J&I<_IA&77RY_:]7SSW [
M_+B"!19'%@U- 'TD7N+Y#D 6U\'#?K8M*HSBRR@W!+92QQ$AR4I:PA+KD64M
M.32J3?IL?)83#>Y!CFVO\39 T<T7U[/\;SAEO#V%W#,'Y+YM/Y$9];G6<$,O
M(8/#&;]*Q9HA/L](#WZ\3*@5[FV@>X(X]K@#\0B$PK]-1FW^%?R(".)WM+@H
MUB<N@;%^8X+ID;"\4Q 39@AJ0/02:VJ?.S;"9+A')N%# F\%FB?#)XEY[ M%
M2Z(G0\"<D0EX.= (&8<>QVX2KQZS*3I"J.$\Z  A!L0. ]G#&>G#Y&?\:V@-
M=)[)83AR?5!8H .]>_'V?,F099)^V*V85V0%H%J<<"'K@K6!?:.2=7PFW@S
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
M])5FMY7QKJ':;F?1(OM.LC48*-U!;\=M0H5E9]ES:I&Y[XRG&JN^J0?U]8U
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
M03;Z>L/,NV':GF:22+8;MU[D]P!4XOK >J_!71OBQG'L^@<FX@+^?K=M_<W
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
M++/,G8+>$]Q3R 2FP3(1L%$"_JL0G8W#E(WANCY3K3"\9BV(YL.3':8H1S
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
M H(!7X*'<\=C]#BT M/0_M+XR6S=O&.:$$_'[XNF0Y**6>]QE,& 'D^I[IL
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
M*3.[R=S!B7B+AER 6$7S@V/K/A#WBZ&-#&#_XD!8WB?H_GS]?\\7MW>?08G
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
ML.NFVO^ G>J08,33?@3N1/+KB!/MMY7:ON^CFKH<$SI55=@RAJ[4<HY0Q_:
MQD"Q/=!ZAPA4!ZVRX]K0E4K$JB!AFR2E9OI1,Q*JI+O.G.)5$:J3S__)E=]5
MRKGU9+>_0_$I/EGJX+)9KI]/7!-]O]674I+S>;NI>0 ?T2F/4DGJR1CP7':*
M8A)Y0W6\6B,!KI).W'^+_T8A#L&NFM?S(12-(-^&KZ.4KH"5$'0IV!Z?2I0B
M>Z-J;)<Q6K>FH9X\S=N>7E<9<2@&W/&I2>EU&B/XI:5_L<=5@'B51RDF=Z$;
MGT^37AUF04R>3(9.MC3EI"TE3X;"D:PRVX%96<>#U^ZLGF,.7XR>S'U9,S "
M.),.HR&WINE40)^= ^#BPZP9K,XJ RZO)5HYZ,=EVAQU_&+ G[N/M !_0E+!
M0;#?KK:R/6G$;3%KX\L8I=>WJ2"7X59&.C.V;/#]=@I>RG<?/],)!2[HQW#E
M'^<D5YFU5&F44^;+"3CWY D_2.:M2=S5>KES7P.-*FA^2(.J>KP\)<3$![E2
MV$$518R,!D\=]-@/X[F+ P087_%A5P7I51ZE&-SDOL=?:=R<@N58ATA*]UCW
M,E^TW[ <.)>.Z;RK(R6GA[O,E^G/$'=YK=A: DY! G)?R0PDH,K0KP%7/.#B
MXW,95&Z5 2>C/2S:,$DC%>DK1,0D]QXD!MW+W->$U>@)"S^"41&"?+UU31UY
M/FG,)$>1>\-<A9U2@::\7,BM.$J3'[FK[$=B+8G<>1[+6A*<7I\HD(HN"W;
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
MAS9F\4M)H%EAH6BF5[N;$4_.K8!9N?-!![4:EF?D\A&77@V7A3CL,2HAXD[
M,/Z3WWJM[>+#B4LKO[AL'CT#_NUI.:M#*07H3$<N'X/M_$;"N6'P!*SL6\O3
MK!>\#T<NZ_)EAY&@SEY^Z]]M6W\S3).UQ@Z8Q]_*?_NE]GY(-'+Y".SNY<4N
M 8&=9D=*!.8UPPO6TE?:W/"P(3/5F;6M.=C^V<*HX2LU[?EZS8$R8'D J)=7
M#6Q+';"\VCB2X+UFU$2X%3 +1"7"*JS1D5M4>DFZ^O387U5(Y56OQ4(JMVNZ
M3 :=@$E\SSO)6R_$I)J+?>MABA?VY,*'/R)75B2Q%JILI_1RGS5#)GY!'C[B
M2/8$&!@1L=S6<D=.E^&9CEP^"ONYO6YEHC#1#CA-B_F "OZ.>L1>*GD;.%4K
M\_+%:+]TO:4H ;^N-,=9@-R\:8Z>_\RI]-IR^@W/=.3R(;A?]EX9$%1;%7!\
M',=.#PO?DS!C4A(@BP>>5>&GQ,H@;3556DFBU!78@T-IMUNII&UKG:<3[>Y6
MHY&C,57*R0'0V%&&*0^21:/Q!$ST\(XH$%[*P.1925.R,,4GI*15[7 0RRT]
MK=[^LG,.1G6-URA>XY-7TBK_O?":SLZ7 :_'Z_',9[+YD\@E3-+(3#5O[Y[I
MR.?$8AE-T+7*))%(GRSE26IL5I[0-8NE4S\29B'4G88+#1AL\1;%I_+LR$ (
MPKN+I/CO7LF2RPK'+35C#/A$79?5A%9\<LN.M(*#0:M?/K1D- +7M/"#@XD"
MWH(EVU[_VS<V4FV/+QUGY=K9(D_Q:3J9$GD#=C^8FN5=6GK(\=Q9.LUT&09U
MP*FZN(S/>\F4#5PX+M5..O5^U-!3":[%6G/+*"'Q:3F9-/=1XTBU@CYE^+7B
M\U,R*>BCAH4.:'I74P]+@_=J>MO.=.1S8K&,#E6>Z!^32<0.\U]DO<AUPMWA
MDK?8^*2[M'E"$5YMI&#4O0EK].U"7ZJR2>>.OE1]"PL<=+]'Q36?"U7]9JLY
MU/B1@#YK-J=3CSHSPX(OC#07?@)F=&,"SZ#6&#XSHMX;I1;QII1,#$NSQH9F
MPJ0UCZ+KA3ATCJWCK1?V=!P,'\,:WR6-"G_CR#.JN3Y.U'?QZS@ M0 :(O/
M@1'$E[4W%U9#8+ND8X^\3<5THM/$!V++7?YU&Z8%$N/2!GF>AB.Q^<*\MC3C
M,USXINZ/J:X08P(TAV>[FK-0R&A!-/(:7K;0@L1G5KI>LQ9\Z;QIIZO ) TL
M3N%0!0FJD9GMX+7I[]2$3TXU"R#L(:4,^"S^&IW[B,(D^#7W#[AN;3RV'9T-
M]F9X4W+Y=$5>?$,/AU^N@[H-V-YQD=&.7 1W&9@3/A<?!</$KP6^][=D!9+J
MZAH+U8"&*"]G?!F>2;[*P,B"&&'@A%7 RAAD-KON(#L\I(UN1SBQQ@>.HUB2
M6:S!HP5&5O3A%!$[=B@3*<#.%K*N>>QWMUY,)/%M,&)Q^?GM87QV/M%])Y#:
M!=4<$%V$50SJY@X\VP$]!E^A2-9OC:=&+". 8+Z02_9<]A>(+'L^X])8LYC<
MK#-&: 947>FU'VHH,@99?*%LQ%#G,"4PME\L5FE&3&8.JM_6^31<'V0[^+QX
MA%!!7($U"M#M96T3'1;2NUE1&V3N.W/;9:!EJ_T&(("U/Z&:=YGFF&J@-%XU
MPV1].B=4IP[L ];&)6+@4>1*(/GUOWX:M%K-#W?W7]AOZH??L+]IG()B#$*+
MA'%F/G?L'X <#S7F%NG)5+BF^+N+:E_I]..C6VP]6V:>*0N[A)EWE58O07LZ
MU$4E:+RR[<H6>R*9^!YLHR'S 3@,#!Q'#;(GIIA-00 H:Q J%"[I:VFP>=Y%
MJQ<41OFV,FAW<V$F54V=LJ??4MJ#^'C!#N!P#J_#YG;"[">Q0PM%H?8_N.0%
MS"E4L3IN(KBAV\!P=< T+>X#OF>P34#!;RX(5F/#[=O 'LH>[-;P)=\E.E/J
MWM2Q_9<I/*#=;R2,PAI?XQ!]#D$B2$50=8+Q:R"ZV(Z#YJNVP(UH# <S#1!N
M&C/#8WLN0RQ,E5G,?.&P;?D@,)BTMERF&VR(P2."C<3@)H7]!O-RI\:\B-TD
M9@N(VU[VJ0ZUTIH<AU@I&,7:-L.^(W0'XIS#@5GWL+$38X;J C;7$;QA>7C,
M #AY<.+B5+6Y&N%,UP*K+F8'"@XB8 SIAL=9>1&J$Z&-Z*LX#<#(8H\*"2XX
MH8@="_G)^,^M@2?*I;(]: 7<O,4.EQ9,^!$?"UR]LG5 ]I]X1M$95&&&*&WL
M2Z[GZTPZPK,7GC761R?VF)M#C0.SJ-33Z9_!&0242H![MEG8KL'9G'#@Z7>:
M 0+8L8F;;]Z;?>%Z= X*PL:C&AX.'0KV]J_J;\RF#RD,;\!W88/RT+Z+/8XQ
MVPX'6)T04RLC!*:+T^5'Y)5YL._0\=1"#PU!)X$7OAX\AZ'RU]9OXF2"2%\=
MAHT^HY1/ 2=XP2=X@1.\P D*JY0]#O09=:>VJ8?G.F:OLB^;P *0'*+-L%T2
MF\GR<,H'"FC %M]M(CZQ3VM(DY73#_'G,*)O>FR#)6!->R8_33/VX) .-;7@
MY*[YL#Z@P6++6338O!6^6LW27L+S.;YR9<_FN"M$W!,>4[MOE"E_X7=@&TD"
MDKC<X!:%6Z9A\1-1H6;YBE\HW*:' S7KD2XP\ZYL"]G@L*D^&N[WSX8[!J4&
MF\@S/.V3:8^_OR/4'6MSW.@=G_*18'54OX2M'/_XJ]?4NZU) =ZQH&/OW?WS
M-5%[#7+U[>GY_NOU([FZO[L"+?)X^7Q[?[?:S+?H4H/_ KDS)HO2-!/?#9\C
MH$.[--R4870P4QQ4+2BTFNA!AB)'C5<&P)%F:LP+!4\T7@T=]GJ0(4 HB"@V
M/]9)HD772P.59AN@\A>:=7_=6_1*S.@KDZF="'K@D@WRI4;-NMN[FXAA]P
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
M[$G]V8M\,\CQ9IW6,5P\7T*0-^&PN/,;)D%!(=!RT%WB?2A\Q2/-QID/"OK
M?%W_^$QZLXKI?7.6";J&+V44U8[("U#0'QV8<FO/TO>IIQ+JD)YJ5[<[D769
MOYX&8BDC W9@X^N6;Z6N?EU0'.YOT6,H>JS/5;F3$QZ*/'$W;69UJ.$+O5<9
M'L][YI4\I6SJ9(Z3=F1LR S[P>-]!6673UMSW\GHN]>XZ\-,?8/&SA>-\H=1
M^^SAS#>M^>/L3-?USYYS)5]+5E6I$HC5X])\-,^M]2RP/8K/(CCMJ,KYS<J5
MH?2RS*I[JVZXQE+LS[[9RXG7YD::$-3%!WS=(^]8I@+CG!PV6U'Y'06S7OQ!
ML<9VS3/WYKZG;CBQ1UK$13^=\%V)#_8^S]AQJAM/$2(#=*<BP6$J6]>>M*"H
M\&OI">"8.3(@"O8^8SI8JO+@I@(I[R +<3#*F?REN.8AX=8_Z#_+6S+ ZX-J
MUPGO$=-XA1YG^/F>$=%3=,.X":YMV0-4(VPU,YR4'F9CQVHQC& J8H0)*N-]
MRXQV<ZO-?&./V[0,83[Z*C'>+DRI?UHI]^G-W4?Y-./4?]Q+W;(TEIX=F6GZ
M9M__6>F1N+US4ZDXNEDKJWP3NZB/IV=5#GV2ILBO5W&\9^P"JXS4Z+3K8/#B
MT5)NB_QTV^A.79Y6\]2M_#<UEMA!)J8A4B\OG.F<IGT2ECCW\_<6'N:[?'.-
MO;=JC.!RVE6C>CVAH6=,4U]2$C)5]++AIG2EM(_K#:I@FKQ95/_')AZ8B<E6
MP)>!1A7<:8J>ET)7>X>Q3=,FH[[P:>K%*^.?ON;7F="+'XPHWW0A;K,TA,J9
MV[M[)IRFZ)Y<&^'!L&3E\4RZ.=6,))"@38G.',1 \Q?X;('4[I;H'UD!I_Z3
M?GZ0Y&=BYS]R2*=)L$*I0_>)-86SN=0W1V5;QMH%G64D0$&2U/]DBA>YK4^B
M%-1AZT?]9  +&="MBJOO.Y06^BXKFTE2G&.OQJ?V(HBP+8E(LQ-'#T;:7IG+
M,&V=]LGVI@/)&VIG0C&*ZZ'$\#T(\/&A$QO=FX_IY59GT@DZ>.@>0M%V&XIF
M[#*D*#H4R4]?>>C7K3/Q=GGGI\3[$#6Z[6@Q:+MV9W#L%Y9%@<J<B9)N2-AZ
M<RW;>EPJXL7TRK==;[^[-[CL==@=# ,J3P:MI<&E1L8>D2<"89\VBHQ^9H\:
MF,(]+ (&"Y<EJR23T%OK6VB+@P4.N4VOEV>YJ_MPM:WV#6EUN#\J)##R:RNI
MG*LGDB(X#E.=)K!&8\B!N]K=B13-:I,B@772V_!BO[N,#=0MT3_ 1IP6NH"_
MM_G@55V^-#V&Y&%Y-4#X5ZJ60N4-$KK?+)Y$[]J!L\E5)QC8C6AE8P@U6IUG
M9>T<AZGUFXWI3F.C=5H:O72[<^L]P1BP+750%(63S/EW[GSWA$CER,I7]8-L
M]R=?T9W;?)/KWXSTP)Y8)^BBD'HXDR8VC]K9H<^M#:,?#1)2NK0?1-$=\>TC
M$U/@G^H=,YPK/-FW>=3=$VM^P;_)#ZL/*"4J$AF @>M?BXP1$ZA=#C^NG(J1
M4]#,.I)O:25=^*!%8%>()V;\\A!E\\X52%N)4U5PHPN8L?_3 A6,K<WM':94
M^6G&%XW*VUDCV-TXH4YSP0A_V#"4]FD)>RCT^\'L6/N!EGQ56@]:R^@4S<$(
M?1WY XN:KA@,2^/FI6S?6?J%="4>%_GNPJTQ4ZNPZ+974?*.7MCC%.2   ?R
MC3);;/1B3:!82%X6XI<KRV*:UIT$(UO=+6,G[R@#"UU.P-^YVZL_VD/&:&]@
MJ:,?Z>SWU=[SZ-6]!&A7E\\HD35;LQ==KWK;D>GDML+B?*C<G06\893R)NT3
M$PO!P+G,#]O&F<SZFI*E=<57WR+P6K%PIE&,#)0,,)W,<;B%OVO^:/Y+K2Z?
M]S/[CS+(U_D4-6;3T6XW%^2ZU?/+/1LMG6SM^.['/'+5O ^\=@^1TI-V_;H!
M\"5JBPRH'XC_<-#!8C_#L=XQ)=L]LK3*&B<,?S3]Z^AC5=^SODK0!X0"VR\=
MKA2N<2Z5(S7LQ\,I#-3R,3Q$4X:H=:AQ>^5WO&^PU^L4L90-!PS#!-T@W\%&
M'BG&ZM2FH\DLKC''$V)IZ+_B<W>ML5E"Y^UW=HT>AOTH^(+WP=,&6<-Z1($X
MX:9#%@EVV3]\U$<<T>+&JRU/9-C4+VBX,EBN#UJVINS Q:7.M': ?7JO[C20
M =S6JVSV-F\_9&5!#[V'!=-J!8H@#+].56D1Y<IUC6O,:AHM77T@9M("%9Q_
M['J U_@>V.=$M2.<^;UX2(Y<9JAX>A*>L3+U(-[;/6<T1/P('.__8_'A,'-A
MB,\2DS0MB(,*H"U.0A=$Q7T^OX<@>!0*1I9H[[ZZ&RY7(MT%H5^)4IGIWS#K
M:.'^)8YG0[[G!21MN^)*X^]+1#<@<M6Z0>B^!U)3*1ZS/&V:5FQWBSP'I9RL
M&EOXV?ND4!XY-M3.7[IK-P6.T<\W]QFUDML&A27?T=_8^.W6:M@I$>K&.B>>
M:<(<(W]0HX*:YB<#>O>WG;9G_VA:"A9$%V:85_*GO<9X%;;)%EMR"18+@,M>
M-6Y:)-QZ=YXAXTJ$+SD0O4Q::47M'OX4Z[3FGZJIT$R\F&, ?V>OJ FO-=]9
MCCY;Z%L<3+MV6ES+-<XD;W"M7#9%Y#-F<JVF .)0,[ <3;_-/ZE7AVIWZ>-0
M^29&!C!L-"GC?!,[?V!, TPC>MFCJDDF-"ZWH) @7<R3F]9W(4,C&[U6*;:/
M\AK=HY=\9\6ZX*S8C,[TL_1R^W&!3A.+,NC@6" 2G]06?&(GQLTM1)O]4EMA
MG@S01JUQG_-,+C#+K/WY*8+._[3"&KN7X(>=ZU&\\ULT91C-QP=.84MZ:FU>
M-FF]5:;OXI>S7NY>/KN@E"CCWIGOT?YD+I8[:B%*P?3BS+Q^H3TWR/7EGW<7
M#7B7T)V&2S)R,)S$RTS)^/F[:_.J5ORIN1<SP5"'F3XV/TXRUT/BZ<R.#\1K
M+;OPLXM64.!L.3^2^[9SQ?&KL4S8G3MM1\>F^\@O)'3P4K,CYH^P8O$"%7S^
M_$8);7&X9FV%0>M,U>$7B=K8_ON"(#-0;M)^X7N(2I3 ;!U!Q*>DM]YV8&TP
M*FTU"*2.(&#V2PX9WY .BGORUO0IV_=PTPZCOCNV72\5>==;5%ZN8QM2,LP\
MOQCRU1F-R\_>O3FYY 8%S9]Y3LS=251E-SR]\M+9Y#0I2G$<7_K@ ]1=Q,P?
MVA"!BB<\5N6K2#,PW-10#ZFH%704H?W$!64RF_:-QRL/=),!3";$:]ZB@A%2
MX(G6H24X,R0MDAM;_R7 -/NT21">\=.&^^\^#"['I3$9R1,U*\V>M;VM-D%W
M7"6G.6V7$T>[%\[CD:R2&6^/1M6GMQW6I7MC]/W,-RYM@YE/?7-UL+O5KX.0
M&N^>WODA#%K-=-XV4#ZL>=$N74(<[GX\RUSP3F+$%6K^KL'T1WP44R0]!IG0
M*8KE;I@-Z7!%\:4B L%7_ J)":7-2K;K5KH=OBO/QFI*YF>K\X>55INR7;I+
MPI]TR-NGQ'\*$WKOH188(]JH\;SBISL4Z*M1:[+_QC5)E_?J-CQO^IYA?DPQ
M,=L8XZ"^XM7PC"I@KM:YBQEP_J"#UG!F3\!XDFHD,]6SX.?0@(6 #T@C$7"N
MO$_ >X(]7MVI$BW,AY7=J#[I@5_%04+64#2QYIRBS],#ER+.,ZX46<&^;Q*8
MU/>C^1T&RO@<I1-\I3<D[#)FR8!7D(AO.!9+5*TI6#=6>U*'PU!6/78 J'G*
M<0RC) /8(^^V%LWL!(+<5%WM>YF_LNC G+^M3R$(TFWIU_;?COT*,"04?4^K
M';<W0<.RQW0=VX)13VQ?STD"P9XNB%F/^]5%O@K:_H+NQ-3RPVKXCJ6'BX?K
MJWKY0>?%]](O,O?"7I@>^JDR%QV6>^_.['3#8!3)]GT*QT7XQ/'24F6NB@5/
MX.#$0>[P$1E0(J^8ONU7T.H+(MX<"/AI#-($SJPVM#_]\&E3H6(IL)E=OL\A
M28TN61>"X/YR:=O5%<]Y1%OEO1 *LS6U\ XZ84R>R1BZ)9*2+ _NUC=?+)QM
M^PTZ'XOF1%59+LBU:\@FEV;2> W_8%=."5#PS]N@?7G3"K@7'1?^[-E %QG
M.#>[H*/T<0MW#5$8^^7[*MM<SL']B<X_<2$9V-(N=8>Z4-5[:<.],W/<%$4F
M]N/"GWO*Q 7/PY0/Y!)<ITJP8V]5/N3*+2[P!XM1J=P8[P"VH'0YS:__W93(
M(HP>=VIH>A8\&F'P%<5$:XRT\#(4-YR@&ZZKI!9)%,3$':._3CUXHG6]1D96
MYI$I:J&^2]:@R_(#W3:SY^OXT'X R^]Y$,D_Y^SZ]*GB\ED8I9>Z3#'V$NAK
MO-AF>-+^;L2A+Y:YK+CAH&5"8D#()'=22V^#4-&"O(*M.0R>GBF$S(PLWJFV
M@U2';25M!9UI.$%1DZNO=00G^JL4@[1[(Q>).TZ&<K\&R@8"N2J(.<#2?N.P
M? M\0(3/%@D=M?SI"9SNZV^1SHZ7/H[;$+;#])./^B= 4IKTS>OUFNZXZ%\)
M.$:3_(AQIFUN(='$M"6:$Z75]+,9B6C<]OJU<X'3!XVTQLW$Z,HL7K,TP4HR
MX#/)^:<R2:/!<B7N-GY._RS[7"ZTU%S1<P::0]VYQ+@X3R,2.#9MDD[$[#A9
MG<H0.9;!\236>"\[GT HHFF\;'ZNW)L,"*88ZSL-^^W8HTN5\6=M?:-VXZ%?
M=^$[@^Z88YNJRA<^G TVG&&ER9I,1/T^V_(93ON'I,I+X\%_#G5Z$(*$*\&1
M[HL?$SY?DHRJ+ ^MMVU]9C!B\.#%]8/+'EH(KEW>HL\'[Z!JJ8RG,EC5IVL\
M_)H)O.W@_:. 4:6?1Y-I^LM)>U)]G*#_[J/[E_LXS2F2I J>,/P#:Y%__ =0
M2P,$%     @ >X!P5I0,A@?J'P  R"   !    !T;VUZ7S$P:VEM9S(N:G!G
MG9AU5%31V^\/$H.D=$A*=W>,@+1(*(T@'2/=,#"$@" A($@/#8* =(AT=W<C
M(#U(U\S%WWK?>_]Y_[CW/F<]^Y_]K+/V9SWG?/=W;]0<:@UXHJ:DJ@2@H:$!
M[QX> +4(* "8& ^!_F_$PL3$PL;'Q@:!L)_@XCW&)WE"2D+\A)B8E(*6BI2<
MAIR8F)J)FH:.GI&1D92*F8V9@966@9'AWTO0,+&PL$'8A-C8A QDQ&0,_\^!
M:@.(L(%V( T=[1GPB @-G0@-U070 P :)MI_ OBO0'N$CH&)!<)^C(/[4%#[
M!'B$AH[^Z&']#P /LP$/\P &$28QHX <%HFV.>B9*ZE@<'P.-I-\93N9SCB"
M6<C"+>0Q#CD%)14U"RL;.P>GL(BHF+B$I,(+125E%56UUV]T]?0-#(TLK:QM
M;.WL'=P]/+V\?7S]0C^$A4=\C(Q*2/R2E/PU)34M-R^_H+"H^%M)575-;5U]
M0V-31V=7=T]O7__ Q.34],SLW/S"^L;F[ZWMG3^[>R=_3\_.+RZOKF_^<:$!
MZ&C_'?\C%]$#UZ.'MF" _G&A/?+^5T"$@<DH@$4LIPTR=R5Y)AB,32H?GU/9
M_IA)2 =!9N$VCD/.++S.<O(/[3]D_W=@(?]?9/\;[/]P+0!XZ&@/S4,G L#
M+6\4>_:C*,ZD\RGJP$QWF,>&.$^N?;[EN*Z2ZET8X$+'>]6/N&V["9[T/'2U
MG*+ +,M38"I44CIP(< 69Q.OD)D"0YS1.QL]?E&\;OD<,-9NB0<3,N5!S+:?
M0FVN\DKW_2[@KN[FWM[,L\21XD&B%R"V\/:YX "A7IH RP(H+8(@_L*F'G$G
M*-*4A/6Z06PZ\'@]^LVIUXNWO^(PIUHASD]>P4^8$"]=O_412DG#DP5,DQ"0
MS;#>+EK3_<X6AO'P].\*A M:O9D)K,J6?=)Q97[F",)0@I0;>T1+FJ,52QJX
MNH)M/WIV)'<%C(U<%E#&XW*V+5'*,GH6]IQN]1W =VN_VBJB=N '-])6)"4E
MU58$_J<D^TU?HQ_9&QX(@CRE=^PIJM?\Z"V%1 %(<;I?;/K3-?>XZNEZT^6*
M94D-^-S?\\,P@N=(IJ*NGVXJQPG#HQ:2"M/7%PL;QL[B?V6&*FR/7(,8@\2U
M^"4]G1WLE'/OT)H1<:&!Q$;+#BW<DSQ9?R)IG7@M/_9F/9>08..&::H=>O+%
MH8#''KGDFI3&RQ(CY",2;",RTRKWD-^.].MO9[YAU.MI=5T@B*O4&[UR<']B
M5-)L9NA;H0!,IS,/KVEJ2N@/;W1W:DL\4H3$D6:#CB)[?E*DGA%=[;? Z2S,
M>MXTTT]E>TZ"9!]PB<6*N.?ON3JD7Y\\,Z.X<QD+?*:P/G_V,X![,3^>IZ,F
M@=OM*T\&@5IFP\6^WK$P'.]/TXNTZ#H48*_R);-+E"IH1/:]YTZ=DJ2[22E4
M<?)PBB4VPB[(@T70_8W0X;+8QM>@6F.#[8BNY+%^5E='%Z3)/*U29_^=()>.
M,[6=0!]3.&(Y<679.VXTYXYK33R01<-Q U=#38-+LS%]J)VD"]LDRX5KP6,T
M$D9R_LD@/"FGW_FI>5XJ4RQ&DA\T/RO#\[)$%;WQ7"^]F+?(BC>!*@=CTVJP
M-LQ.GVK-OW3^^Y'%%*_T;D^O1*(OU8@2#.=@C[J:&H<]]W/'?WZ"_\H&YX_T
M3YK!B!UYY-1,(1]70MU%L7*JP/%L;NS.[M1G0G<STOT6PI.(7LTXZON,Z(7
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
MAG6 GQZ30@^TM:>IE10"^;[KIU,6+=HZO^ ARI(C<3H@)BB&G@@?>ZWBS8;
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
MEN[66G-DMUCDM!D)>/(L2F5[BJ AA5MY>O(KFP0\LLKEB\"J<K)HX"CFXV^
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
MQ0I]8C/4!/ZK.Y3T^W\ 4$L#!!0    ( 'N <%;[G 4>XQ4  *H6   0
M=&]M>E\Q,&MI;6<T+FIP9YV75U33V[:'_R$B($VZU-"D14"0(EV$4!6D%RE2
M)!0! 8$  DJ5EE $-ZA$*2K2I4OHH4E3""U Z$CO0@1,#GN/>^Y]N0_GWM\:
M<[VL.>98WYIS-?($>0ZX;*"CKP. 0"#@P7D#R%. %D!YX5S@O_N+E)07J>FI
MJ:FHJ"_3TM'0LUQF96&^S,S,RL'+R<K.P\[,S"7$Q<,'$1 08.44%A7F%^'E
M%^#_.PB(\N)%:BIJ1FIJ1GXV9C;^_[/(K0 3-9 +? :#! $*)A"8"43& A
M %&"_A'P7P)1@"]07J2BIKE$>^Y0<QF@ ('!%.?S/P<X'PT_'P<N,%$R"\AH
M7F0Q<:(2]&.5?9[VGEKH=F4;F^F/7>$;SOY1-)?8.:YP<ET5$143EY"35U"\
MJ:2LI0W3T=73-S SM["TLK:Q=7%]Z 9W]_ ,>!(8%(P("8V.B8V+?Y&0F)[Q
M,C/KU5_9.7GY!84?/GXJ^OREJKJFMJZ^X6M[![:SJ[NG]]OP"&YT;'QB$C^_
ML+BTO/)S=6U];__@\-?1,?'WR=]<(  ,^K?^5RZF<RZ*\[1<H/J;"T01_+<#
MTP5* 9F+S)HF5$Y^+(*RSZE9;Z>]KVRC$;IANLOF[/_C$KNPW/S5O;_1_B'[
MS\"B_E]D_PWV/UQX@ X,.D\>F G0 $ZE$L7>4?QC4-2>,5::GJBP#;7W]U@,
M<3G@Z(NIGTI7"1<#5^1AQC12"* T<.GR&.,?%7E#,D";WXH^. T@ \\&;O$E
MP4+FB'US9F1 >AQ"9,#-[\6W=I.<62)GX]XQWLJK!^T%M&Z-F+XBG2D2S>([
MR\$9J"U]C9V.R%A*WE]L[:@D/FJ?G'PR,)M%!BXY$FT)-#N?KY^TS\YKB@;
M_""[-1A&,J#I1@9:I$FLZ-V:,SKEC0N14QSGWL"V6!G=F?6N!!GH=VK9P<:?
MF$*2<D% UM@+,E 7HD',H7)IROMRZ.UB/"[G+N\M,6=G,TWADBK.7:&GRA<:
M;?N26BPO$?BW07]&HLRF/R8?6O,WY8RZ5CD/,/T$_76X,]PT?G^T] DO^-Y8
M^6OOTMC&:;W(20MA,B!!_(AM5MC;P<[<'L'ZVWC86E0DC/4#PXJOTHVV0^=R
M$2>F3F%<NP[7_"A),[C9F3Q'DM3'^]NS4SEQ:O.0,_L07 X\B<='7? >.'S"
MF3;M9 P=\\NFQIM"I;CVXKQ]?D RG(]0'?73ZZ@MF0QX.Z!+P&0@Z:/DG&JD
MUPRZM)X,+&Q(*=HW>=["L7J\3ID]N/)5B-3430;8C#CN:*S(^)UGJ(,,))8<
M/B#@C@;53="%[&Q]?8A6,M#C/ <Y.8*<6=P].H)&EQB$#U2<1ROFSYC1.S%!
M!]P:\ N*7)4B T0ZC:XWTCQ\\L%DH-6$))],+Q51_6R20U>)A!/=\)00+ZA/
M58HWL91HC)+_G+Q(^'+68>F]A+^J<=A/!F1N\4W..;+:>9#H*NIR^N^P!%D_
M;;+.[8 4AJ:\;<54(^=T?L1SXF=@CQT9?.7<SP0^8+L8:RN<=;[;G2TQ>'T_
M]BF*6539;YRXREZG_=($YJEG F,%3& A:&2S-$)T_@S]<$Q>2*K 2MSE4>.R
MRP1?AVK@RC.E2+P+-FV5#-"T?-$NI?NZ/!WT:*W7^OFLD$M]:_?9)4Q MX/2
M[NV6N,.=2P3#$/@'CSR\F:][#^T!&@,H#<G_;+Y.[/R,:,'*$KS>><JT-TH*
M[9\5QAH+/PA4DPV;LR@V3FAFK*R&Q;>*JWV'T0O7"4O-J3O+3.3.Q+*S#R[.
M[\GC!O-&;F/0(S<Y24\0P<:CU?>YQYJ'MX7B;/I[V S99LYNSF4<EDB:+?@4
MAKL=U5J:>'S>2MU5FLY7:BV#GQK:X0KW+8\60M 2^2$#:I=&T08>N<">Y*&X
M:M;>Y&TB_I@Y9EKM<4B)_N;/FH8<O+[W,7:9FX7AW4(EAC>D<"V(/9B/WUOG
MV/1Y].;]C&4*9;\TXLEHJ99U7?.H3[G@BPZ>80YSU:T!AK'O?K;K=N:O3G=)
MS(DK-9+<6-O8S7U>??Y:L]HKSHW[Q&Z"LW*Z5PJNAI'R0T-Q;9-WL'J>M/H]
MD:R;_2( Q_;U-N8'N0R:\FZ&.U'-GK(=I3$V^9DQ 0:T7:P^2==F#.$KFXSS
M)D\X= /?=9??G^SU+=&GV^%>$-=>[U]#+:CUE+H=^/4DD4CEQ/&H[=W(G+W"
MF7E8AN? M>'ED2LSU0R,6LFY8<_ODP%&7WY[7POVQF1:[TM+5:E#9W</6' K
M25%^\+)BY63O?T*,8'K#J,G SCH92'&6)P/O6#LB#E/D%"8_^OYV0Q__TNC*
M_HF1(+BW]ZA66&16Z"_R\V4BOT:?FELI+K4=5V@51^@DL3T)I]J=B?#FEBBY
M\\A?]U2GJ2G4ZL79C? Q$I>;DH>D3<O> G2JT0KU_.O+\>/L6O&9[A_,)C"V
MK3<",-9V"_,J'E"O: V ^(EL5B,*M7W-'(L:5^0(Q1CTM./YUWQ%;A+T.7]R
M@N47T'1/]7<#M'"Z2%6_!>A;>)>B[F" _!L4[^N,=([E#D6-L/U.Q''BTI?7
MB]*)#!F?N/^HWT]P1;H,F]HW^PZI'F]8%%C<4S<*%ZL2.Z'MRNG>[%ATD1OG
MBB5D?C+6P%]MJ?B2^3!(37,ZN0!2^+3MDPU>JCR8[]7C ^MK@Q6&8AV8,.28
M$Y+FRH WY07ZWBA/"VU@ER:OG\'"Z9N,NG/%$GT\U5XI+T^?R^>.H$D9D6#@
M^H1@;6K@3'>-_OY>3=#I2M)U.9T&^//32:JS"R,M\_Q5D/UAX],CKZL%FY@(
MN>F'FH2(@G.GABEW,L"R_82X,"*9-6D24%DF.9K0>USZ?-'>.JKY[E_'EQ<P
MNO8J@6^A90PDCJ*%)F8:=FMFO6-OIZYEB8YU1BWK;R\?EJ3Q5,(M.%+DW0NF
M4_'@=><>4J"9Q1XOJ:RB%!>T*MCK**'6,%3J#!Y2<U]Y*:[#F"/&*EA[59'Y
M-,(\+D1O21(VP)/JY=^K^ALX_>RID*MCWZD#9D#;HGC8H7?)0)936!;X]W<J
M'(1^Z@]W.S-DH2+R#Z?#2A,EPKAC*,-P5R=L\N;Y>9FYW3>,N<:>*=*"&>PW
M^AZA76T""_M(;4F5?(,,4"NT1)T?JO"A;V^83FO7[O^*7OADN]B6,RU3E+E4
M^=8"Z'5VN7EEYQ;DE>WU]+NF<YR\ZJ8@@&&E]OU!P6SS^J/BS#GDLS]01OUX
M94SO-43_PZ@WA]->^8F#,_7[J0P-'Q)9=8@::[(DES/Q>9[ 7,?^R%A=/R\Z
MA0P](9/E]X\6OUMVG]G\WG9SW&IRH/7C1*R<:EYX6YE:>!M>]!*.^HH)T,%F
M(Y-E:CWT3E"[A5-I_?ND-Z27?SR'YCU;W;Z?693V"=W%LERWTS8'%)E2VJ)9
M<A4JN@4;WAKPLA.^V<C-F"ZLV#G+*0JG!M.Q/+LYU8AR&KJ9-Q\0\MXY)%?S
M5S?1S-4R<<S*,(%6@IWW.H-ZIL;$/'_$D@L.ES8Q=?"5593OY2:5XH*P*TZN
M#FG%,/F[?FZQCFUVU=]8(=I#[D#N0#E]O\Y*276<MLRV3:2J +;\+)V##C@J
MUZI#X@?Q*O?-]]\G.YGH4F101!+IQ7B>?,(['J7HC(!F#PLHHY_C3.'H1@NN
M!V&DES0ZRNAOSR2]/6@LV$S=O_4R7.'Y1K7J<8I*[Q"&)R>^QMK6=+U71U_%
M/N[Z#F,%][[0N2)103>QWMV@FB.E M%#B)^E*+:JE_MLD %4SG'A.K05 QF,
MW=TV(W#\L6EI;]I63W*X"+FCO;B"G-;=G3M+8CTO@Y_4Y_<2Z'?'GLX@K2,>
MVFE9FUH@(XS\5ED&]#$C3C*L]5!7I"O2<J-_CQOO::W\^?#4M6%U6R.-5!/?
MN,*Y*9'*,C%P]2V.XT<L/%%3L#@Y2K.GIVR#Q.[[0C29:N3P*5R(W8!QS2%B
M N_7I<2#J]V'"Y5JKW5%,C=(B6\'66E<KBFBGH%_8#R"54#&\B L&.WB([^/
M:U1"[@,?C%5#QX4>3[U0^BPIC^70VY7]) 6&,E /V1VU#NA6)0?JV:7)F;:O
MZ(A]4)"(<&JD*A_Y56IH#^ZM1GIK;='MOX(N;4K<4J7+74S&67V-+<N^\#5Y
M!-HVF1;MJ_:L.S3?ZS,1;5GC98WG5HE4#,[IK9]:>I!'!L)1$:U[MM-?1G_&
M'3:(QNT'-N@\R^!6R8L=6O6TBG\2\4@YJB1DZA7B%1J+8VJ;;Y(]$9</MSPP
M:TB(WM2GB[E^=('_A&MX%&,U_];2&Y^%4H:),6L>Q>B:.^@"N0&#X2>F%-*;
MX?JI>E\,OH5>KDR-Y%+OO-EP*F;I0>'[NX*&L\OH)IL#?EPSW?^IQJ>['XQ'
M'2;2N".;N)]^W#_S$KJWQ]XRCV).2O$?Y$Y17K84DO^2-J*:?*B:4;T;Q@7@
MLT87_](2&?6_D8)+[<@=_73@49?UP_/> $^"1,3ZW0GZW#>AHP]17J[E1KBX
M%V."-A8=CX948!:C%J[I"BEV8AGNT]<1 Q[+08?R].,[%Z!UJ.N!9""PB.Y$
MND/CZVYY1^W:"Q0)5Q[JB*F9.W'<5H7,Z9 V7<B IU5CEW_?83E%-!EPSSG0
M]0X\K=<0L<U+A*X: 7F)8N"#\H4R@3^%&.=NXMN6U+* GZ?K<\BYL>[.XCZO
M(3QM9["E62%64DBBE_-;.@.C.I;IWIKCA)DMS+=HUG%*CV?G5-5@3IR'Z4U
M3O 7L$8_*(07422HNAPV3$B"8;*]^?0ETV\+AE@Q]&U3:9D4"30[9#XP( X1
M1\6QS^32YKZ\248JCY9VOAGWFY_A,, 0X0N\EMN=HIAH1**EJ,P\Z IPDD-S
M,UQ+?V1EC_<#VLN+Q^WJJ04V_SD7D@.9+8IN+]</$,)Z7S/7K+VQ_$F-X_L)
MRZ"7^F" <,[ V,ZL\1-^1]=;5 >??Q#L[WM:R6"TI1!/ WF+99.RV#<R][WO
M;QE,/>X0J0TT-*Z>F,#W7KI1@N!_X)(Q7'6@>M2IG92N_IB!-LQ/KX)&#N'M
MNF!]4-< 9*#\;G'.3A9]#'GUL##!1?21UWXV]\@$H^W8B'0I!E8XD+]>&2\5
M&[+1_8O7?3) _>7N#$K6W4@H,X[SU??SET3 T9Z=]<:]@6JQ:TK3:J$1-N_H
MAQC6N.Q+9&U[72!3A[^QO@*]UV@H73G74L."+S8I[V@/QY9B:]?\?/:*'IIJ
M%0G-1CL\'I:+N*YSFK?^H^/!+YF*!Y$B\OBU?3O[SN)>^2UL IV[LY9HWP%#
MP(8]CE6XD!.Z^GC!7J_>0.K;T0U,\TW5T?N%WF-SJ52OR<"7&H>UX2+'U+SI
M-#(@J2&=63RHQHIZ_WZQ-9?:AV"Z>!!Z?#]HQA=RFH?1-1ZIH=>=_QFMW@&7
M:X=J5*L4/'Q%C<U<)"(1O!OX1[^K$K(-F!,-*MIXGL@O?L\WO9* 2_^!)\ ?
MAJ9E7H&I69"!&[<3Q<H?S5WJVA-&<<0&AKA$2@X/NED.*J3&4ZD5NU4^U:-%
MF%F;6[HI! "773,J#H_?,?9Y7\4,&.BX 1>@Z9/;8>..'E2Q?+!7EH:]/@R*
M5Z0HI*#('T\+,)E+EUJCKM\[^=4%=9[MA67T)S_HZ?YCLQH:].F-TJ)7S2I,
M+Z#8H6M@<<W1,W!X<K%ZT7. '\Z'&;'4&S6:-#__B\2:T<.1ER-G\TFL[TME
MCLT9$4-$RS2[(F@*%,I>IYM1JTT&FF.?G%@EE<JU@#:XZ+*^W)6<=]-W2;M=
M),&11JCO\K([^_R1!$2VYSG1V!=7L#^0-4^.R(2QX*M@ZL4TYR\##O4(E:U'
M/&1 .2(O'7;:X[.$O)$LK@2$(B6:2X/9LS^U%<-E%$_DVY^GKH90J<DJE?IY
M?HW+$8C5[DGD4M1*[[M'Z;[@49KOJYK]3+5K8L8HSC"[NE?@K\:>$O-T=3>'
M2;7U@K$174Y4GZO),2>CT-X'_+2]_D/_*J/@]@G"+?KH=7<PS.G)"'Q]FSA=
M\-,39=LW\NALP/ER40JFDK>E9T#?FW<6S^RE0/C#H\B/"AVO/57/]%:O#!/4
M]<F^R9/ 7<&7?S)WCS(.-;"7>,V+#/"-I:SPM<@E Y!4^54%99_W#^$EDITQ
M>U#MUX8ZMUIY#K8<(N<;7QL6W_@4_EE)6IXF"VZW_^XRV\70N=!@D:9AJ)*\
M(7;$=+%/T4> $/&@$7D#^<=KI'W$U.Q5VK+SAMP\H\J?[NPXR]7U2"9S>2M'
MJ9E@BCL-<^=UZS5^YK'K:[8;&?5+FD5W@39L]7#5-L0)\?1MST4C!KVARNXQ
M3*CU+^ZWLF/[8D[UB<O^>VW*+(Q5S,!0!,V:@_Y&A]D6.K9EWT!5B0PX))T-
M!%G\1#/ZRB5!+J[9^F1<72FHG,I3_=&UQ1>VKT\[B*#:+=?Z</Y;9+MU?C\#
M$>Z($V_!V47C1,HW3&M!7B$2DHUO'@GT:-QY\R9HP+4V_Z/WP@EX:B?QM+@;
M D3P$D^QT/(-VT<_'-DO!M=F/*@'5SV.E(DVU]ULV-6.[,_KW@C7( ,<=U5
M>\SKRNX;88R\&@CQTB*/;I*CP'G9=8;W03;[=HT@C7/5OL?;*[XKOU315>BV
M;,G"9P@1O(:,P8Z^ZW3#-L,VO<KSW52<W#09Z-ZT(0-/S1;K:W*W;SHW)+P6
MZ&+0;UMS]'5OJ4*USTAWT!3:(]SZS!IA@:>!_8X89WT)(P99$'CW,X'[3PZ)
M8Y5PI6YXI]H"5\.&8O9,[L^X@5ZPXY%280@_&( ^WR_VD/%D-YVRTW%%6OQ.
M/>9]<5SF,*0W6DW;ZRVWEG7$JN[9OE59F]MZY(1Z/Q#^O:6*#$2Y7- -_/Q.
MS4\V<H_MY?DLHJQLON(NOB]FK!84UY1]K.,?4-?" RB'#8.7*$<W75_UM>3<
MIVE)D!IQ.E^#KY"QCPG5F8D>A 4E]<<-NO8%H;D3*\U=OI.S;=<*;4\M'ZII
MW8F)7&5C)@VT,)I$"S31,?BKHDF*MR "?ZJ,_Z*6:]27MX2T70CCA^PH JCN
MW1*;IQHEB-?8X;8R@BY;2DX7"=:P?L45])L)_:UYSG>2#+1M7@]4<^'+#?4C
M T@+8R+<F+)T@R!26')M,$J6\ 2^3,7OGUL-.@ 4%%"^']J++J/<$Z\ZL :=
M6'U919"!F-=&^,<1HQ!2#+31<7*G+?)1XKKAEBD\.3HN7:8>_'W^AGUA><<L
M'=Y!-YBW.-O93S K-2W5'UH;)RB7+WR2ZR-**U$5DW<DC]%Z-T',;S]!Q=?
MX)4X;P+A04KUEA.2T<61>9V/!4,,6 BW:E?,, [Y>-\.JOE8L$-"=MF(L#ZI
MBE2$@M8<PX[*7+!\#+M#B5PBXX?NTH4Q;$C+;SW/?H%P<< )G*U]=,A(F<_J
M5+WV/=RW;'5++GW-DG"G(E[XQ</PY>_PC]^8$I&OJ\XL=@+C"]Q#C>,/ZP\'
M.(SCV@=E#3HI*#E%A=&FQJ8A\K5B!CU\>3]@K-B_-\E_:I'DR7\!4$L#!!0
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
M&Z;<VWB#[=^IU")H60^KT?>0^L'S<MUNT;R]I,"Z,@4<)I"4U7^MO+F1"D3
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
MM_T]-GF920WRMOKSYWS&#^TK::W*BH']YD2@W2@\6OQ<,CE*,;#;!&+)#YE
M)!9&J,)X:W.C(+^]IMKWKHGO5>A['3U&6$T2F-O9BH3>]1*6J,D1FN.R#*^=
MA1JHJ)1#=36 D*0@O,3)%U1W(\HP,&IFWR1"9'Y>BXE6?C[S<3^7C3)#/S=:
MV?C$8X]]H\^.\_NTS$?[XP=-"9L8Q-@1GRPK75H+SR!O=&@2R9,#5F#9X_@5
M_X_,[K/*Q298F6V.8Z.-##E/$U54Z-E,^L8V$NURT*)= <,HNO>_;IMBJ>I-
MUDODOVO2$A4DO_82>XC$BJ/.3/Z0K7N('#V9^=3@A:GFF)\?Q6%TW0VD0Q=]
M+*M#X-TJ6&MZO*@^/*W_">]173T$;XS((J$[\M:.DB:9+)SX.1LC04$O[<AF
M6C9/I'_<^4== 9+PH+K4)9_Q_0'O;,Q?O+E"J]EJX$Z%PY.^Q3')$EO_&Q=+
M,XBW-37UDWXGTG@NO\;Z1G5N([ZNPL@("MO"" AQ]E\ 4$L#!!0    ( 'N
M<%;,K7O/\Q    D2   0    =&]M>E\Q,&MI;6<V+FIP9ZV6=534:[?'?\,
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
MI.Y8-:%"D\_^SVQ@<LD0+B_U+]5+^M47:(U)JKUX8^PAZ*%65E/K(L49;[#
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
ML;W9J]K/%97Y,XG>]\OQ13GWXO/$?4G; M#5VPF\L+6,@87%,5&X1,4L!JC
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
M],\5-MS]1"1$RV>?77S <I!3MK57,.$,O1,_F)C94+S9;?@Q(J>G*+*[#7W
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
M?0\ " #@$.#\MP#_0SBX>/@$A$3$#QZ2_$M D -P<?#P</^=_Q_ OVCHOS@
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
MZ7L= L*UQLY(!4@5")U!'T/13^Q!4352Y 'LW\GDD+'S*IE/=/<TG#Z;J%U
M7*&B(\;7!\G9)_A&(HY[F2LB?S 9,:,5E3Q77];!\WLH.;['P7Z.(I.6BDWK
M ?> %I#@:H^A:UW%*$VDD_"Y1VY/>YT)8,&S28T(*V/Q\8.4T;.:4@+&QT1%
M7.&<POO$@Z)^ Q/1:DWSLML;F[S@9W4#I6^IS4DH5 N# ,WK)2?96]I(C3EN
MYGM ^:LZ)^ S')ME!W"OE?REAMNA8U(I]-0 7"1R<HV)Q3)<BW4W[0!C3RO"
M6R#D_UI)R=PX!^GQDU:&2&25?0!CF,HS]\OL1&37<W9 /-A,Z<5<?5&:LM^J
MK\<^%.:9$:#2@P9=M#KE$QV9-8=@F9W5WFOI;UUX"=#'6RES)!C\N> Q5,W#
M L %;D4O)F_;$DW8)#9^*33?;OL&^X$NBM)&7 2&^5-^'OD_I>F!,&B,9Y$
M3<^H/( 7WB:2[TD:E^1J,[@"\A<8TQQE[=S>F'=T>C^.KMD2'8S(R_O4D]ZZ
MIDMBC179E<RL<Y8U.+#T71Y]K!WZCB&@O?]RNBU03Q((>_F4K[>TX[=/I*<=
MX]8%>5]/0=W6>8E9>C#V"$DQ>B&W\MVDXU I=_Y+^3*IB? G?=+E\Y4]JI:#
M+@GZ"YO36H_7DR$6=I^3\51:&<+R.0)? (CXO?0!DKC:1#*:$K>,@>&09\,]
MV739.*_Y?J$ -P^_[ <&N HO@2%Z[D8S,MD#C+1AC..[(6J5PTOW &'G; AU
M\@9OK'.?XC>2/ZJS/S98CR%M8S[#"2VKDYJ/!XPTD05EE(%U-?D^JXZMB;;D
M@%(:41G;.UC]9_KEQH]5D2F3"A*2!JFW>CR'FM[/=ZX_AHK.JX./3HS3U3*&
M?5CX+3H$)B?"1X> O_#N(-F?SD3B]-[[F:,)R\GRU@G,E[W"A4TG'"6^.I\/
M^7KZQ!5TF(6YJ)R6J \N,9L,,=+N-X8F$NT;A;2^6 U!<)^S9YSP]-J,0 ;?
M-9V'=[Q!MF -.!C,VDCK,BPVSE_QE-5 \I,H9:XJ]D%-]8CTY:5T8G*'@A0
MRWKV\RLMOU$UXUI8-.O'QJHVP(BR"LO9WO6SG$FVE,VA<S-9 UOH6L::.&]X
M2Y(=7E'022@OS_[7^K;W>(RM:HQ!4?*$W\/FQ+)'E$2XN*E<T*JNK.2F58I
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
M*Y=*@>YU+IV'&=MXG3GW@/H$S4<G@D0FE^@9=_<#88A#NN)Z8#V@9BW%1.$
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
M:]=+*\;74H9VF-BX31]9_1+:_T3V_R^P7_Z/(OM_ OM_XQ*"=GV]"4C>UWM
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
MSJY.>*+,E4SKS?#]-WKV7E>^T"8V3+XB6O0.2-+IAT<%R!F*Q7 =HR@AR>D
M^3V6->\D7'+(":GI']\Q7B(B[5:XD5AP'2#PXNH#?XJV?D..*9T/;>FUJ9;:
MC7U\UQYL$D=EQ17/(YT<143;+N$O"\)=GD),K]!AKH0>!( #<^-B4#]/ ;W]
MX,G"T[%ML"UW\NP$QE68WQ<[.-C/$7;),T\N6ZTN<%6[CUR(B*CD9LE'>2SL
M1D^M**0CLF0I!TW.' +0YAWA&<13]+%D@JA;,T3??>$M8]:%3C:M^($BKX,H
M&0!SP;U[-*M=PK<%OI=/_B)W]?\M)@;IFB1FH9L1MN\X-5^'_<MS(_:5YL^V
MJEILE8ZB,M(ID!=R#*!CB\*MO=7;%_(L2M%]-B-I1G:A?[9A;#!')?CK!080
M%>J]LF5<^M1E=4N'[< 0C(222(./+NLJ.BQ.!ZUPJN/-*SQ+@I/X]".%4 ,H
M%C6Z@BNT7MD\.EZQVIOV?+(-G?I5\\1!588]CLILF1L1__!YL. $N;DXN6;!
M] )M6/;4XQ8T-8AL*:#8LE74Y]WHV4\;/DT\&CBF.'T,P#YQ@E:0H,78WEOC
M.\\5#<7%*42\6(6U?'V\?/'IMXC#4Q)IA7\\NVAS4; U=JW:6>->59S2T3FR
MM>L$.^/$O?ONVTW[$K65;"Z3I^3 A _GY;U=-^L[TC3TA-GPRCH1K6H.X*EB
MZ$$T)DY(^S A4I8$TOZX!?' XN?4=)V8I_57\KU?,N<;<VOH9>LF^3 P&'L,
M' <&:J5326CS66B+_5%A?K[$J2:WZ=PP,L3MYS,VI4DE52DZB8Y "5[W3A &
M'ZU64E^1-7PBP.)C_D9_>PHI;%K%<?T SZZ'Q5UN&BT[<T]SZF!?G>8G%]XL
MK0W5_T4%Q]5>2>NQQS_&#-YK9K\:3PT:#NR 2KT9D$AF4F,]-2LOEY6[7!$
M6_Y^Q,R;5U#PZ0@-O3F.^C (,"*!^G&]-^*K3XPW\#[S7WO=Y^M8SXI1@,=Q
M -2* %:->GA#,N%3[[]710W3,/@VV1G.!%;3'.7EP3YX4DV-,,I96>%/Z#QE
MM&L"R*KH[22,(:M%NB3@,K]PM$BN'2OS_^_/'5<3.1-6^/V%UFX/6V0([H;1
MB@&T1&OP.3<WN,_TS+@; EROL?B=X-LKFZ@$^$6L5Z[H%FCU48G-PXZ4PJ-W
M%[.Q$1[- K$2Q3;;S:G$6LQU$OHLEL7BHU(1K",;N^UTXP1Y%G\)WI=J\ZC
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
MQ<_[DI.);OURS$./\LI:_0*08IY&\I+V#7':NWA)E&6CJ(_5$"T%7[JV)-L
MLFAR38O]3M/KCUZUOT 7 A0GF5$3+^M-SM]S*+288P*DL(L#[9<H^2F>49;@
MQ IC_(U0)5PC48[%!-<,<%U$=PO'E^W!*47'']]$+5AN!>3(PVVSV(V$)HEJ
MS8OMU?"*U::[%(1[%VH 34!+@AOZS%SZMO1$/7[[G$,-<Q'*0U+U773A[EJP
MZQC\]/CW&$$&SU.[&;<.(SCO4;T/TC#PWE 5!"%1+4)_%ZFH+TV GM5="=7?
M=%K69J%3!F>._-.K+T%WX IX95^TU=/+R(2,BSD7!-8&T*_TLL1,[LN1MQ1]
MO@4F7!NZ,LEU[+DWR]!Y1;GA@"M^O;60[9_&D.XTORY1#/MR-W:C JWNKH%U
M4X#[:[[>"DFIW7[#HS"QM_$39,IUA=S?U$PF)QI R\Z5P*:#3T[G1G=GX GT
MBG&S_!H\KVB:7!2S@S@HIOAA=WPB=Y#3C(YP 1(;SXANSJ2&TDQN>JVTTTXE
MS^4.9Q/ZKB:2[]G)%[*Y]V,A*X6?L^%S%29(O*YI)J;TP'1"$OE]>S&6;UZB
M!@1FSGCNS'< =Y:/&><MEQ_$O1][Y[^WN9ZVP@LT'Q'U.6!HSS!<Y<CE^A_-
MS#[DZTUIOV? [MC7]GG,19#K2BWX>ID ]J9CW+G-U_;T&ZTIUKB[LVX'E538
M0?#E+AISD%49*^.5$YEAW<'3Q&Q?VTNW(XN"_<;61;O/1.0!Z@ BJH3K-YK+
M7GHP"IJSRD[/8XK\#P>EMS:UZL: P^@4 ZCS(N32PQ-7SSH-S.=D.-]O9E=9
MG'H]@FJ=RII")XDCUCE63.;0+!O!V--*_(E$5L*7<1_=9?M4MB'%@<.?+<YV
M4WQ"\Z9N4)/49%,-5RPDLC(TX%>+$&JFR^L$;#D0!CC"6M,:P)?34DZTWFT)
M:*D]H&F-_Q450HQ"!3%,%N@9J3W#@QW@/-C27-D2TY==D>(QD>&I6Y.3XSY!
M7% IJ#>Z"N\">%!M"9W"-VNESS<EY[+.%@D.%D^%JPOIL64#L6"]4N/?'?7D
M1$F)0C7I@._<!P>73H4>J<_/J:P!*_R7*3--=,\I,-MSQP#58UEERK^XL#?0
MKSHW.4G"*D;IEED*".;Y+-[3S/)A:[ %DT0]SU/2M6,Y]?L;CH1->6/\>\9-
MJ'9]!QT*=,(E-P/(+/"&**F<K,3Q #VZ'DLYACB4=+6]G:HY)U@)I@?;5.N>
M2#3N'IL33)?MG367KLB?N*T>\VVDU%1TLVD0L?;"E\%*%NYN*_P".X+@2S:_
MSLI+],\XDGPBCDWGNJ4 )OX6Y';FLQXUP3L?G750#PO@.FNWH\XW)[16/T@+
MEY%D1QDB,_5UKIV6K)=F^C!"O9$!FKJ*.&&!;EX<-=$<TM"+7L_R$/;:9$."
M#D^V)F'9Q$@_VK-/3"P^R[+/<5V&;O^/.AHCR= 1AAW,0W,]!L]P5N[ KHG$
MX0N7[$\[I%BTR"99=5]J$\EL&S2:D#@U4B(^_KOM:2A!) ZQ6O9#L,#1!E B
MH75N=.WH71.LW<P8S /.2L"_CD5([#VU.^?%NK%F8@AW98/W DWPHUC<&4]A
M(3XI2(4.?C"J?4 _*R\=P,PD\>R5Z2/]*0KPG=\I]%[_]UYI(8-[<YDS8P[0
M$%J1.#K"+UP$F#WN.Z1[ND?Z3=^FJ,D$QGU"[MUJBS%%:U:!CR9=:@#%ST%(
M1OLB)U6_=)UZE*@(?"Z>/,Q//PR8(%5,G#HC%Q!4Z<R"XIT?;[*0P?')-L?4
M.]&;'V/HOMRI+R;)4TD\<*GUK)/ SGT4:_=0Z87QE%JZC'#;.%V.3PNBLRRZ
M/R<S*LV IF*JY-YEJM8*>B+<=R+.^IX2$SR*#M2*CW#Y"DSQ,LYT9=PK7M<8
M/6T1<GYDJ4J_YP,3CA37?W*:A2!X5GK?#H[TFDH$9H^SH8DY D=L?,-_D7QJ
MY<V2=6Z!K$E&NMPH=1#<Q3]?6L[-=DE<&U0%Y5GSZ_EIJ6Z.MOBOL[*1\Y@!
M[A(%:&Z(*YSM*V*>YWINSWS$0:E'0<K4)6*2FDZ?. @TV5OOQ$?MC79&:O]K
M],C%%$1OQ<+ B#TNC9%#AA->5IRP+%B7IO _9Q-5=%++X4'S*N[JG-YQ[%G3
M[QV7]Z\,)\_3.G?EQO\M/%^<M;LJU&+$VZ[-CF\#E(44R2;*!5<XNUM&EFU&
MDAS]!517>V*>%*HG>(BY6=Q.)6H0GT;*.3E$!A_6'*G;Z1H<0Z$'O4>(&+G+
MTVKN%.KSYE%!=I^/OT>Q+Z?::3Z"7(5=S2$U2;I@B@ROY^<O%K?+LL"<_+@T
MHZ7WF-F> LV#HV&.Z8Q5MT)Z8]CT;S,8ZFF;9")&81TF[I/KYBA7QBENQBO]
MBWL34X(MJ&YY,=DU"!%<E;>8(\J#*<30EWS3>XY)UM1"R!Q^:1A'%-$X<4(R
M_<E07?1EJ74!<T1;'PO/\H-H!B1=$5+,SZ0!+@L[K2:RF:M;M9?)C4[%UUO#
M],7[O]BML&4,LE.+O-DJ@P4(#E$)(0FP;3Z?TK6<Z-QEE;'?M=H#C]W@_'@-
M;'@L;3O!RP:<%C?)PKT#+U5P?%9WKSW>\S;S%Z$]VL;D!1GUQW^S#:",IYWH
M_IP?S3$NJ'V1-6]E \\Y,P#(C-.9.9!5H8PJ2MY%BHGP>=U!WM,Z#Z^.RGP:
M<O^S]XNKU.S\]@)T6XJ=&NDBQ1+8_B_SOBU[:8:=^#+5?:\G.$FYRXXWC7HL
M,J!OV/[U?;6XYHXG-25TF3I=UH3<<0/>-:T[?47 GG"W9Y$I\TSZ6&$>DJ57
M0*NWAU0_WO":?D&R(]LN(T_WW2B^<_/YHXP0^G8S''L(X#OPDN6!-[AITQ6_
MVQ].SR/" VW\D/B.C*2X"/\I9!56,R8!5/(<72)FK(QY\R(<VWZ;)G@YF0Y,
MDKCN:6?]/KUK*J[Z30&WVDNK+FQV%+Q>7[P@+\\;]\FN!6-((KC^7[1^[;6Q
M)/_I/<5205YT\ E22J"\#:/DLA3./"5ZU(E,VXR=G!#W'?28!\/>Z;]797>;
M<?#QLQ\]';$8_TJ_>22+AI<90'\1C?Y36'L__NN5>KG'*FV,79;U\^0G0/;K
MGD-$L*E#@*&OG#&B3KSMM?$[-9EEKW5DS(LB*?>T3[9VET;EJ3$S!2C*8SXK
MA:&_';6:V_#ISTPGJ[TPO>(*87R@*$Y,BX[5L-"ER8UF^%O#OQ\QRE'3Y^I&
MI#$M<FU[; F[<SA'A/\R80C76Y[I$#A5S25ZD-#ZY2FL;@N=YHN^@G^I).#N
M.TI-$J$##\.?R=_' N;GW97("5U1#_I5S"_?(=)?-;$X$&0GT.# BSVP[-Y[
M4>7OWI];:NLE] 8S%-;@(MR4)T_AM+R,NUE70EH^5'J&X'U<6EFK$S:+F[CN
M%PO"&<R1:-'\Z5TXS\K#K6J<LP$4'6Y:[,Z]I\\R,V&!(_RP^ ]8;<;RI9;W
MIPE[YTJ>*2;$IVU^55.=EIT'"G$3XO";=ZCP@&%'=JNS9HS<,-E<G*:KFL\2
MR.V#S8?H8Z4>6#P@2C=VFU'*C LB<Y\&.T*QRYXXDV6 )^OW/BI9T'C]72E'
MP^Y636?*R'#ETYCL:&QEG@)7K3(.'\D)?+Z0FJ?FMB[7&4 5!?KF $!P$FUA
MM';$40N_[S(PI;Y<3WZD6%"9C+$.M+%K(LL]E1'$\Y=K1N=\#T*I3'1:Z?&9
MHC/ R2O.LMG_::L=GBOZED33=5K/'RTBF5RK20171G!D"S7/,RGA0TE_,.(B
MR)*YS D&-#L^]]GB#C[:Y:W8<ZI8%0.<CLK;JZYUOM\_E!:*/L<M@S(TSO<=
MM,5'%P12GU?E><@I-]R4.F\-21MKTS3::.*>6SQY=/.FL'=WW<'*YKPE%X]Y
MD2)8X9HDNDB_5?]VTFT8T)VQOQE /'Y;(8U8+:BCW4HR6>#7J1F!1Z6<>#X
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
MXU*S+8V8;+GL;:&F&[AQWIIY?JIY4<=T-O* RDD1,I)TI.6N?J(6'*[M<#2
MIHJ!_%(>YP2NV,]LO=?L-^110<A_%,(,J0KVQ(#U1R%"'O(JBF-9&K9V_<T
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
MN YGC ".DGP@8VFG)+;7F25^=.3A>,%3VYVF2X6PDSBWQ82R7&?@)>.*@R!
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
M Q0    ( 'N <%8>47S5:"@" !,)%P ,              "  < : 0!T;VUZ
M7S$P:RYH=&U02P$"% ,4    " ![@'!67<9@U_@2  "\%   $
M    @ %20P, =&]M>E\Q,&MI;6<Q+FIP9U!+ 0(4 Q0    ( 'N <%:4#(8'
MZA\  ,@@   0              "  7A6 P!T;VUZ7S$P:VEM9S(N:G!G4$L!
M A0#%     @ >X!P5A!M&PQI(@  -R,  !               ( !D'8# '1O
M;7I?,3!K:6UG,RYJ<&=02P$"% ,4    " ![@'!6^YP%'N,5  "J%@  $
M            @ $GF0, =&]M>E\Q,&MI;6<T+FIP9U!+ 0(4 Q0    ( 'N
M<%;\R_S3PA@  '09   0              "  3BO P!T;VUZ7S$P:VEM9S4N
M:G!G4$L! A0#%     @ >X!P5LRM>\_S$   "1(  !               ( !
M*,@# '1O;7I?,3!K:6UG-BYJ<&=02P$"% ,4    " ![@'!6C\VH9!LQ  "K
M,0  $               @ %)V0, =&]M>E\Q,&MI;6<W+FIP9U!+ 0(4 Q0
M   ( 'N <%:[VV8B92H  /(J   0              "  9(*! !T;VUZ7S$P
M:VEM9S@N:G!G4$L! A0#%     @ >X!P5M##JJ&J-@  F#@  !
M     ( !)34$ '1O;7I?,3!K:6UG.2YJ<&=02P$"% ,4    " ![@'!6,E<+
M4UP!  !! P  #@              @ ']:P0 =&]M>E]E>#(Q,2YH=&U02P$"
M% ,4    " ![@'!6IH"_^;H'  "&*0  #@              @ &%;00 =&]M
M>E]E>#,Q,2YH=&U02P$"% ,4    " ![@'!6SRD A+@'  "N-   #@
M        @ %K=00 =&]M>E]E>#,Q,BYH=&U02P$"% ,4    " ![@'!6SI-[
MVT0$  #B$   #@              @ %/?00 =&]M>E]E>#,R,2YH=&U02P4&
2     !, $P"C!   OX$$

end
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
